Azure Policy의 기본 열쇠(정의된 읽기)

6088 단어 Azurepolicytech

개시하다


Azure는 보안을 보장하는 기능 중 하나로서 Azure Policy라는 기능이 있습니다.
Security Center 같은 사이트에서도 사용되고 있으며, 아래의 보도도 약간 언급되었다
https://zenn.dev/tomot/articles/445f9a2bc379d9
매우 중요하고 기본적인 기능임에도 불구하고 자유자재로 운용해야 한다고 생각하면 작은 부분은 매우 어렵다.결국 Azure Policy가 무엇을 할 수 있는지 나도 잘 모르겠어!이런 소리를 자주 듣는다.
그래서 저는 Azure Policy에 관한 요점을 쓰고 싶습니다.

Azure Policy 소개


Azure 정책은 자원의 설정 상태의 좋고 나쁨을 미리 정의하고 위반할 경우 경고나 위반을 금지하는 서비스다.
"Storage Acount은 특정 영역만 만들면 된다", "SQL Database의 투명 암호화(TDE)는 유효해야 한다"등의 사례가 종종 나온다.자원이 이렇게 되어서는 안 된다. 감시를 정의해야 한다.
AWS에서 말하는 Config 규칙 같은 서비스입니다.
일반 권한(Azure RBAC)은 먼저'사용자'[email protected],'저장 계정을 만들 수 있다/안 된다','SQL 데이터 베이스를 시작할 수 있다/안 된다'등을 제어하고, Azure 정책의 특징은 자원 측면의 상태를 제어하는 것이다.
즉, 일반 권한은 주어인'사용자 등의 감독자'가 무엇을 해야 하는지를 정의하고, 아주폴리시는 주어인'자원'이 어떤 상태에 있어야 하는지를 정의한다.
https://docs.microsoft.com/ja-jp/azure/governance/policy/overview
그 중 하나만 보장하지 말고 조합 제어를 억제해야 한다.

Policy 정의의 기본


원래 Azure의 공식 삽입식 전략은 대량으로 등록되어 있고 많은 정책은 단지 유효성을 위해 사용된다.그러나 무엇을 통제하는지 읽지 못하면 지키고 싶은 것을 지킬 수 있을지 모르기 때문에 정의된 작법의 기본부터 컨트롤해야 한다
또한 전략의 쓰기 방법을 익히면 스스로 정의를 적어'자정의 전략'으로 사용할 수 있기 때문에 이 정의의 해석 방법을'기본 기교'로 억제하면 그 후에 마음대로 제어할 수 있다.

샘플 정책


정책은 JSON에서 규칙을 기술하고 정의합니다.그 기본 구조에 대해서는 공식 문서에 설명된 샘플을 대상으로 설명한다.
https://docs.microsoft.com/ja-jp/azure/governance/policy/concepts/definition-structure
{
    "properties": {
        "displayName": "Allowed locations",
        "description": "This policy enables you to restrict the locations your organization can specify when deploying resources.",
        "mode": "Indexed",
        "metadata": {
            "version": "1.0.0",
            "category": "Locations"
        },
        "parameters": {
            "allowedLocations": {
                "type": "array",
                "metadata": {
                    "description": "The list of locations that can be specified when deploying resources",
                    "strongType": "location",
                    "displayName": "Allowed locations"
                },
                "defaultValue": [ "westus2" ]
            }
        },
        "policyRule": {
            "if": {
                "not": {
                    "field": "location",
                    "in": "[parameters('allowedLocations')]"
                }
            },
            "then": {
                "effect": "deny"
            }
        }
    }
}
이 전략은
This policy enables you to restrict the locations your organization can specify when deploying resources.
따라서'사전에 승인된 구역 이외에는 자원을 만들 수 없다'는 효과가 있다.

정책 정의 해석


정의에 나타난 요소는 다음과 같다.단도직입적으로 말하면, 무엇보다'폴리시 룰'(policy Rule)이 중요하고, 그 외에도 분위기 속에서 알면 충분하다.

displayName


등록된 정책의 이름을 표시합니다.애저포털에는 이 이름으로 표시되므로 알기 쉬운 이름을 지어야 한다.

description


디스플레이Name과 함께 설명문으로 표시됩니다.좁은 범위(환경, 구성원)에서 사용한다면 이것도 마음대로 사용할 수 있지만 알기 쉬운 설명문을 첨부해야 한다.

mode


여긴 좀 이해가 안돼.크게 두 가지로 나뉜다.

Resource Manager 모드


대부분의 정책에서 자원 관리 모드를 사용합니다.자원 관리 모드의 두 가지 세부 사항을 지정합니다.
  • all: 자원 그룹, 선별 및 모든 자원 유형 평가
  • 인덱스: 지원 레이블 및 위치의 리소스 유형만 평가
    기본적으로'all'만 지정하면 되지만'indexed'를 지정하는 것은 탭의 위치를 제어하고자 하는 상황에서 샘플 정책이 바로 이런 모델이다."all"을 지정해도 정책이 이동하지만, "위치"나 "탭"을 지원하지 않는 자원을 만들면 문제가 발생합니다.indexed'를 지목하면 무시하고'all'을 지목하면 평가를 강행해 NG 판정을 받는다.
  • 자원 공급자 모드


    리소스 공급자 모드에서는 ARM을 통해 직접 관리되지 않는 리소스의 일부를 제어할 수 있습니다.자원 관리 모델에 비해 그 후의 기능이 아직 충실하지 않기 때문이다.
    2021년 5월까지 정식으로 지원되는 것은'ubbernetes 클러스터를 관리하는 마이크로소프트.Kubernetes.Data'뿐입니다.미리보기는'AKS의 라이선스 컨트롤러 규칙을 관리하기 위한 Microsoft.Container Service.Data','KeyVault 컨테이너와 인증서를 관리하는 Microsoft.KeyVault.Data'두 종류로 나뉜다.
    자원층과 데이터층에서 조작이 분리된 자원이 목표가 될 것 같다.나중에 추가하면 아마 Storage Acount 근처에 있을 거예요...?

    metadata


    이 프로젝트에 뭔가 넣을 수 있을 것 같아.다만, 삽입식 정책에는'version'과'preview'등 몇 가지 고정된 정보가 있다.

    parameters


    policyRule에서 사용되는 조건을 변수화할 수 있습니다.견본의 예로 말하자면
    "allowedLoocations"매개변수를 정의하고 초기 값인 "eastus"를 초기 값으로 지정합니다.
    Azure 정책이 환경에 적용되면 변수화된 프로젝트에 무엇을 추가할지 지정하고 변경할 수 있습니다. 그러나 이 샘플 정책은 '자원 생성 가능한 구역' 을 변수화하고, 아무것도 지정하지 않으면 'eastus' 에서만 자원을 만들 수 있습니다.

    policyRule


    이 프로젝트는 Azure 정책을 이해하는 가장 중요한 관건이다.policy Rule은'if'와'then'두 부분으로 나뉜다.

    "if" 섹션


    에셋을 만들거나 설정 값을 수정할 때 Azure 정책이 작동하고 if 섹션에 기록된 조건에 맞는지 확인합니다.견본의 예를 들어 제작된 자원의'location'파라미터가allowedLocation이라는 변수 (배열) 에 포함되지 않는 경우, 이러한 조건이기 때문에'parameters' 항목에 적힌 것처럼 기본값은 eastus 이외의 상황입니다.

    섹션


    if절의 자원과 일치할 때then절의 효과가 발동됩니다.
    가장 기본적인 제어는'audit'이다.'감사'이기 때문에if절에 관련된 자원은 전략을 위반했다. 즉,'활동 로그에 경고 출력'과'정책 관리 화면에 위법 정보를 표시한다'는 것이다.
    이 견본에는'deny'의 제어가 쓰여 있으며 자원의 생성을 제어해야 하는deny(=거부)가 적혀 있습니다.따라서 지정된 영역 외에는 리소스를 만들 수 없음 효과가 발생합니다.
    효과의 종류가 매우 많은데 어떻게 사용하느냐에 따라 기사를 한 편 더 쓸 것이니 다음에 사용하자.

    끝말


    Azure 정책으로 정의하는 기본적인 핵심에 대한 해설을 썼습니다.이 지식을 바탕으로 policy Rule의 if-then을 어떻게 씁니까?깊이 파헤쳤는데 너무 길어서 먼저 잘라버리고 싶었어요.
    if절에서 어떤 조건을 정하고/then절에서 어떤 통제를 하고, 아무것도 할 수 없는지... 이것들은 모두 Azure 정책을 파악하는 비결이기 때문에 다음에 이런 말을 쓰고 싶습니다.

    좋은 웹페이지 즐겨찾기