スキップしてコンテンツを表示

Organization 内の組織メンバーアカウントのユーザーがリソースを作成することを防ぐために、SCP とタグポリシーを使用する方法を教えてください。

所要時間1分
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_valueDev を入力することはできません。また、ポリシーに大文字小文字区別のオプションが含まれている場合、ユーザーは 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公式更新しました 10ヶ月前
コメントはありません

関連するコンテンツ