仅访问可信资源

策略声明包含在resource_perimeter_policy,限制仅允许访问可信资源:

  • 资源属于你的Organizations ,替换策略中的组织 ID (<my-org-id>) ;

此身份策略应用于 IAM principals,以防止他们与不属于特定账户的资源进行交互。例如,您可以使用此策略拒绝访问不属于组织的 SQS、SNS 和 S3 资源,全局条件关键字为 aws:resourceOrgId

允许组织外访问,则给请求者添加标签:resource-perimeter-exception: true

{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Sid":"EnforceResourcePerimeterAWSResources",
         "Effect":"Deny",
         "NotAction":[
            "iam:GetPolicy",
            "iam:GetPolicyVersion",
            "iam:ListEntitiesForPolicy",
            "iam:ListPolicyVersions",
            "iam:GenerateServiceLastAccessedDetails",
            "s3:GetObject",
            "s3:PutObject",
            "s3:PutObjectAcl",
            "ssm:Describe*",
            "ssm:List*",
            "ssm:Get*",
            "ecr:GetDownloadUrlForLayer",
            "ecr:BatchGetImage",
            "<action>"

         ],
         "Resource":"*",
         "Condition":{
            "StringNotEqualsIfExists":{
               "aws:ResourceOrgID":"<my-org-id>",
               "ec2:Owner":"amazon",
               "aws:PrincipalTag/resource-perimeter-exception": "true"
            }
         }
      },
      {
         "Sid":"EnforceResourcePerimeterAWSResourcesS3",
         "Effect":"Deny",
         "Action":[
            "s3:GetObject",
            "s3:PutObject",
            "s3:PutObjectAcl"
         ],
         "Resource":"*",
         "Condition":{
            "StringNotEqualsIfExists":{
               "aws:ResourceOrgID":"<my-org-id>",
               "aws:PrincipalTag/resource-perimeter-exception": "true"
            },
            "ForAllValues:StringNotEquals":{
               "aws:CalledVia":[
                  "dataexchange.amazonaws.com",
                  "servicecatalog.amazonaws.com"
               ]
            }
         }
      },
      {
         "Sid": "EnforceResourcePerimeterAWSResourcesECR",
         "Effect": "Deny",
         "Action": [
           "ecr:GetDownloadUrlForLayer",
           "ecr:BatchGetImage"
         ],
         "Resource": "*",
         "Condition": {
             "StringNotEqualsIfExists": {
                 "aws:ResourceAccount": "ecr-account-id",
                 "aws:ResourceOrgId": "<my-org-id>",
                 "aws:PrincipalTag/resource-perimeter-exception": "true"
             }
         }
      },
      {
         "Sid":"EnforceResourcePerimeterThirdPartyResources",
         "Effect":"Deny",
         "Action":"<action>",
         "Resource":"*",
         "Condition":{
            "StringNotEqualsIfExists":{
               "aws:ResourceOrgID":"<my-org-id>",
               "aws:PrincipalTag/resource-perimeter-exception": "true",
               "aws:ResourceAccount": [
                  "<third-party-account-a>",
                  "<third-party-account-b>"
               ]
            }
         }
      }
   ]
}

最后更新于