

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# アクセス許可の境界の作成
<a name="creating-a-permissions-boundary"></a>

許可セットをデプロイしたら、アクセス許可の境界を設定します。このアクセス許可の境界とは、クラウドインフラストラクチャを開発、テスト、起動、管理しているユーザーのみに IAM アクセスを委任するメカニズムのことです。これらのユーザーは、ポリシーとアクセス許可の境界で許可されているアクションのみを実行できます。

 AWS CloudFormation テンプレートでアクセス許可の境界を定義し、CloudFormation StackSets を使用してテンプレートを複数のアカウントにデプロイできます。これにより、1 回の操作で組織全体に標準化されたポリシーを確立して維持できます。詳細については、「[Working with AWS CloudFormation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html)」(CloudFormation ドキュメント) を参照してください。

次の CloudFormation テンプレートは、IAM ロールをプロビジョニングし、アクセス許可の境界として機能する IAM ポリシーを作成します。スタックセットを使用すると、このテンプレートを組織内のすべてのメンバーアカウントにデプロイできます。

```
CloudFormationRole:
  Type: "AWS::IAM::Role"
  Properties:
    AssumeRolePolicyDocument:
      Version: "2012-10-17"
      Statement:
        Effect: Allow
        Principal:
          Service: !Sub "cloudformation.${AWS::URLSuffix}"
        Action: "sts:AssumeRole"
        Condition:
          StringEquals:
            "aws:SourceAccount": !Ref "AWS::AccountId"
    Description: !Sub "DO NOT DELETE - Used by CloudFormation. Created by CloudFormation ${AWS::StackId}"
    ManagedPolicyArns:
      - !Sub "arn:${AWS::Partition}:iam::aws:policy/AdministratorAccess"
    PermissionsBoundary: !Ref DeveloperBoundary
    RoleName: CloudFormationRole

DeveloperBoundary:
  Type: "AWS::IAM::ManagedPolicy"
  Properties:
    Description: Permission boundary for developers
    ManagedPolicyName: PermissionsBoundary
    PolicyDocument:
      Version: "2012-10-17"
      Statement:
        - Sid: AllowModifyIamRolesWithBoundary
          Effect: Allow
          Action:
            - "iam:AttachRolePolicy"
            - "iam:CreateRole"
            - "iam:DeleteRolePolicy"
            - "iam:DetachRolePolicy"
            - "iam:PutRolePermissionsBoundary"
            - "iam:PutRolePolicy"
          Resource: !Sub "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/app/*"
          Condition:
            ArnEquals:
              "iam:PermissionsBoundary": !Sub "arn:${AWS::Partition}:iam::${AWS::AccountId}:policy/PermissionsBoundary"
        - Sid: AllowModifyIamRoles
          Effect: Allow
          Action:
            - "iam:DeleteRole"
            - "iam:TagRole"
            - "iam:UntagRole"
            - "iam:UpdateAssumeRolePolicy"
            - "iam:UpdateRole"
            - "iam:UpdateRoleDescription"
          Resource: !Sub "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/app/*"
        - Sid: OverlyPermissiveAllowedServices
          Effect: Allow
          Action:
            - "lambda:*"
            - "apigateway:*"
            - "events:*"
            - "s3:*"
            - "logs:*"
          Resource: "*"
```

**CloudFormationRole** ロール、**PermissionsBoundary** ポリシー、**DeveloperAccess** 許可セットが連携して次の権限を付与します。
+ ユーザーは、**ReadOnlyAccess** AWS 管理ポリシーを通じて AWS のサービス、ほとんどの への読み取り専用アクセス権を持ちます。
+ ユーザーは、**AWSSupportAccess** AWS 管理ポリシーを通じて、オープンサポートケースにアクセスできます。
+ ユーザーは、**AWSBillingReadOnlyAccess** AWS 管理ポリシーを通じて、 AWS Billing コンソールダッシュボードに読み取り専用でアクセスできます。
+ ユーザーは、**AWSServiceCatalogEndUserFullAccess** AWS 管理ポリシーを通じて、Service Catalog から製品をプロビジョニングできます。
+ インラインポリシーによって、CloudFormation テンプレートのコストをどれでも検証して見積もることができます。
+ **CloudFormationRole** IAM ロールを使用することで、ユーザーは、**app/** で始まる CloudFormation スタックを作成、更新、削除できます。
+ CloudFormation を使用して、ユーザーは **app/** で始まる IAM ロールを作成、更新、削除できます。**PermissionsBoundary** IAM ポリシーは、ユーザーが権限を昇格することを防ぎます。
+ ユーザーは AWS Lambda、CloudFormation を使用してのみ、、Amazon EventBridge、Amazon CloudWatch、Amazon Simple Storage Service (Amazon S3)、および Amazon API Gateway リソースをプロビジョニングできます。

次の画像は、開発者などの権限を持つユーザーが、このガイドで説明されている許可セット、IAM ロール、アクセス許可の境界を使用してメンバーアカウントに新しい IAM ロールを作成する方法を示しています。

1. ユーザーは IAM アイデンティティセンターで認証を行い、**DeveloperAccess** IAM ロールを引き受けます。

1. ユーザーが `cloudformation:CreateStack` アクションを実行し、**CloudFormationRole** のIAM ロールを引き受けます。

1. ユーザーが `iam:CreateRole` アクションを実行し、CloudFormation を使用して新しい IAM ロールを作成します。

1. **PermissionsBoundary** のIAM ポリシーが新しい IAM ロールに適用されます。



![\[メンバーアカウントのアクセス許可の境界の対象となる IAM ロールを作成するユーザー\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/transitioning-to-multiple-aws-accounts/images/2_create-iam-role.png)


**CloudFormationRole** のロールには[AdministratorAccess](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html#jf_administrator) 管理ポリシーがアタッチされていますが、**PermissionsBoundary** IAM ポリシーにより **CloudFormationRole** のロールの有効な許可は **PermissionsBoundary** ポリシーと同じになります。**PermissionsBoundary** ポリシーは、`iam:CreateRole` アクションの許可時に自身のポリシーを参照します。これにより、アクセス許可の境界が適用されている場合にのみロールを作成できます。