(AWS) Resource-based Policy

リソースに対して設定されるポリシー。 Principal と Action を基本的に指定する。

Principal が AWS サービスであった場合、 SourceARN の Condition Key が利用可能。

例: CodeBuild で利用したいイメージがある ECR に対して、以下のポリシーを付与する。

{
   "Version":"2012-10-17",
   "Statement":[
      {
         "Sid":"CodeBuildAccess",
         "Effect":"Allow",
         "Principal":{
            "Service":"codebuild.amazonaws.com"
         },
         "Action":[
            "ecr:BatchGetImage",
            "ecr:GetDownloadUrlForLayer"
         ],
         "Condition":{
            "ArnLike":{
               "aws:SourceArn":"arn:aws:codebuild:region:123456789012:project/project-name"
            },
            "StringEquals":{
               "aws:SourceAccount":"123456789012"
            }
         }
      }
   ]
}

出典: https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policy-examples.html


Identity-based Policy と Resource-based Policy は、基本的にはその和集合が計算され、ユーザーの最終的な Permission が確定する。

ただし、一部 (KMS や assumeRole) の Resource-based Policy やクロスアカウントでのアクセスは、 Identity-based Policy とセットでないと Deny されてしまう。 (積集合で最終的な Permission が確定する)