IAM ロールのアカウント単位の信頼範囲を確認

ロールの信頼ポリシーで、アカウントへの委任範囲が意図どおりか確認します。

説明

ロールの信頼ポリシーの Principal にアカウント ARN を指定すると、そのアカウントに権限の委任を許可します。ARN の root はルートユーザーだけを意味せず、そのアカウントで権限を付与された主体もロールを引き受けられます。

想定される影響

委任範囲が広すぎると、信頼したアカウント内の想定外の主体がロールの権限を使えるおそれがあります。

対処方法

必要なロールやサービスプリンシパルを指定するか、適切な条件で範囲を限定してください。アカウント単位の委任が必要な場合は、そのアカウントで誰にロールを引き受ける権限を付与しているかも確認してください。

例

この例はアカウント単位の信頼を特定のロールへの信頼に絞っています。実在するアカウントとロールの ARN を指定してください。

変更前

yaml
AWSTemplateFormatVersion: "2010-09-09"
Resources:
  RootRole:
    Type: "AWS::IAM::Role"
    Properties:
      AssumeRolePolicyDocument: >
        {
            "Version": "2012-10-17",
            "Statement": [
                {
                    "Action": "sts:AssumeRole",
                    "Principal": {
                        "AWS": "arn:aws:iam::111122223333:root"
                    },
                    "Effect": "Allow",
                    "Sid": ""
                }
            ]
        }

変更後

yaml
AWSTemplateFormatVersion: "2010-09-09"
Resources:
  ApplicationRole:
    Type: "AWS::IAM::Role"
    Properties:
      AssumeRolePolicyDocument:
        Version: "2012-10-17"
        Statement:
          - Action: "sts:AssumeRole"
            Effect: "Allow"
            Principal:
              AWS: "arn:aws:iam::111122223333:role/TrustedApplicationRole"

参考資料