AWS re:Postを使用することにより、以下に同意したことになります AWS re:Post 利用規約

PrincipalTag、ResourceTag、RequestTag、TagKeys の条件キーを使用してタグベースの制限の IAM ポリシーを作成する方法を教えてください。

所要時間2分
0

タグベースの制限のための AWS Identity and Access Management (AWS IAM) ポリシーを作成したいと考えています。PrincipalTag、ResourceTag、RequestTag、および TagKeys 条件キーを使用したいと考えています。

解決策

次の IAM ポリシー例では、条件キーを使用してタグベースの制限を作成しています。

**注:**実行できる API アクションを決定するには、使用しているサービスの API ドキュメントを確認するのがベストプラクティスです。

PrincipalTag 条件キー

aws:PrincipalTag/tag-key 条件キーを使用して、リクエストを行うプリンシパルに添付されているタグを IAM ポリシーのタグと一致させます。

次の IAM ポリシーの例では、Amazon Simple Storage Service (Amazon S3) バケットに制限を設けています。Amazon S3 PutObject アクションは、プロダクトマネージャーという肩書きのユーザーを除くすべてのユーザーにバケットアクセスを拒否します。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyAllButProductManagers",
      "Effect": "Deny",
      "Principal": {
        "AWS": "*"
      },
      "Action": [
        "s3:PutObject"
      ],
      "Resource": [
        "arn:aws:s3:::productionbucket/*"
      ],
      "Condition": {
        "StringNotEquals": {
          "aws:PrincipalTag/job-title": "Product-Manager"
        }
      }
    }
  ]
}

ResourceTag 条件キー

aws:ResourceTag/tag-key 条件キーを使用して、IAM ポリシーで指定されているタグのキーと値のペアを AWS リソースにアタッチされているキーと値のペアと比較します。詳細については、「AWS リソースへのアクセスの制御」を参照してください。

この条件キーは、グローバル aws:ResourceTag バージョンおよび ec2:ResourceTag などの AWS サービスで使用できます。詳細については、「AWS サービスのアクション、リソース、条件キー」を参照してください。

次の IAM ポリシーの例では、ユーザーはテスト環境にあるインスタンスを起動、停止、終了できます。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowOnlyForTestEnvironment",
      "Effect": "Allow",
      "Action": [
        "ec2:TerminateInstances",
        "ec2:StartInstances",
        "ec2:StopInstances"
      ],
      "Resource": "arn:aws:ec2:*:*:instance/*",
      "Condition": {
        "StringLike": {
          "ec2:ResourceTag/Env": "test"
        }
      }
    }
  ]
}

RequestTag 条件キー

aws: RequestTag/tag-key 条件キーを使用して、ユーザーリクエストで渡されたキーと値のペアを IAM ポリシーで指定されたタグペアと比較します。この条件キーは、リソースまたはリソースタグを作成し、タグの値を確認するアクションに使用できます。

次のポリシー例では、ユーザーが Amazon Elastic Block Store (Amazon EBS) ボリュームを作成するときに、ユーザーに特定の Env タグを作成するように強制します。Env にはDevProd、または QA 値が必要です。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowCreateVolumeWithEnvTag",
      "Effect": "Allow",
      "Action": "ec2:CreateVolume",
      "Resource": "arn:aws:ec2:*:*:volume/*",
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/Env": [
            "Dev",
            "Prod",
            "QA"
          ]
        }
      }
    }
  ]
}

TagKey 条件キー

aws:TagKeys 条件キーを使用して、リクエスト内のタグキーを IAM ポリシーで指定されたキーと比較します。この条件キーは、リソースにアタッチされているタグキーを検証します。

1 つのリクエストで複数のタグキーと値のペアを定義できるため、リクエストには複数の値を指定できます。これらの値を比較するには、ForAllValues または ForAnyValue セット演算子を使用します。

次のポリシー例は、AWS リソースで作成されるタグを制限します。Env タグと CostCenter タグは、ユーザーが新しい Amazon EBS ボリュームで作成できる唯一のタグキーです。ForAllValues セット演算子を aws:TagKeys とともに使用すると、ユーザーは必要なタグのみを AWS リソースに添付できます。このポリシーでは、ユーザーがリソース作成リクエストにこれらのタグキーを入力する必要はありません。代わりに、このポリシーではユーザーが他のキーと値のペアを使用してタグを作成することを許可していません。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": "ec2:CreateVolume",
      "Resource": "arn:aws:ec2:*:*:volume/*",
      "Condition": {
        "ForAllValues:StringEquals": {
          "aws:TagKeys": [
            "Env",
            "CostCenter"
          ]
        }
      }
    }
  ]
}

関連情報

IAM チュートリアル: タグに基づいて AWS リソースにアクセスする権限を定義する

AWS公式
AWS公式更新しました 9ヶ月前
コメントはありません

関連するコンテンツ