SCP와 태그 정책을 사용하여 Organizations에서 조직의 멤버 계정 사용자가 리소스를 생성할 수 없도록 하려면 어떻게 해야 합니까?

2분 분량
0

서비스 제어 정책(SCP) 및 태그 정책을 사용하여 AWS Organizations의 멤버 계정 사용자가 AWS 리소스를 생성할 수 없도록 하려고 합니다.

간략한 설명

태그 정책을 사용하여 조직의 멤버 계정 전체에 걸쳐 지원되는 AWS 리소스에서 표준화된 태그를 유지 관리하십시오. 기본적으로 태그 키의 대소문자는 상위 정책에서 상속됩니다. 적용된 태그 키의 대소문자를 정의하려면 태그 키에 위에서 지정한 대소문자 사용을 선택합니다. 상위 정책이 없거나 대소문자를 활성화하지 않은 경우에는 모두 소문자로 구성된 태그 키가 규정을 준수하는 것으로 간주됩니다.

리소스를 생성할 때 태그 정책은 정의된 태그 값 및 대소문자와 일치하는 규정 준수 태그 키를 확인합니다. 하지만 사용자는 표준화된 태그 키를 수정하고 규정 준수 태그 없이 리소스를 생성할 수 있습니다. 멤버 계정의 엔티티에 대한 권한을 제한하려면 SCP를 사용하십시오.

해결 방법

태그 정책을 사용하여 새 리소스 또는 기존 리소스의 규정 미준수 태그 방지

다음 정책은 사용자가 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스의 tag_valuePreprod 또는 Production으로만 변경할 수 있도록 허용합니다.

{  
  "tags": {
    "Environment": {
      "tag_key": {
        "@@assign": "Environment"
      },
      "tag_value": {
        "@@assign": [
          "Preprod",
          "Production"
        ]
      },
      "enforced_for": {
        "@@assign": [
          "ec2:instance"
        ]
      }
    }
  }
}

이전 정책의 경우 정책에 Dev 옵션이 정의되어 있지 않으므로 사용자가 tag_value에 대해 Dev를 입력할 수 없습니다. 또한 정책에 대문자 옵션이 포함된 경우 사용자는 Environmentenvironment로 변경할 수 없습니다.

SCP를 사용하여 규정 준수 태그 키 없이 인스턴스 리소스 생성 중지

다음 SCP에서는 사용자가 RunInstances API 작업을 호출할 때 인스턴스의 메타데이터에 규정 준수 태그 키를 포함하도록 요구합니다. 이 SCP가 연결된 사용자가 규정 준수 태그를 포함하는 리소스를 생성하는 경우 해당 사용자는 태그 키 값 쌍을 추가, 수정 또는 삭제할 수 없습니다.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyUpdatingOrDeletingAnyTagOnInstanceWithAnAttachedCopliantTags",
      "Effect": "Deny",
      "Action": [
        "ec2:CreateTags",
        "ec2:DeleteTags"
      ],
      "Resource": "arn:aws:ec2:*:*:instance/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/Environment": [
            "Preprod",
            "Production"
          ]
        },
        "Null": {
          "aws:ResourceTag/Environment": "false"
        }
      }
    },
    {
      "Sid": "DenyRunInstancesWithoutOneofTheCompliantTagKeys",
      "Effect": "Deny",
      "Action": [
        "ec2:RunInstances"
      ],
      "Resource": "arn:aws:ec2:*:*:instance/*",
      "Condition": {
        "Null": {
          "aws:RequestTag/Environment": "true"
        }
      }
    }
  ]
}

참고: RunInstances API를 호출할 경우 모든 필수 태그를 전달해야 합니다.

관련 정보

AWS Organizations 서비스 제어 정책과 IAM 정책 간의 차이점은 무엇인가요?

태그 정책 구문

AWS 공식
AWS 공식업데이트됨 4달 전