Identity Center のアクセス許可セットの過剰な権限を確認

割り当て先のアカウントとユーザーの業務に合わせて、権限を制限してください。

説明

IAM Identity Center のアクセス許可セットで全操作・全リソースを許可すると、割り当てたユーザーやグループに業務以上の権限を与える可能性があります。同じセットを複数のアカウントに展開すると、変更の影響も広がります。

実際のアクセス範囲は、アカウント割り当て、他の関連ポリシー、アクセス許可の境界、組織ポリシーにも依存します。全 SSO ユーザーや組織全体に自動で権限が与えられるわけではありません。

想定される影響

  • 侵害・悪用されたセッションで、不要なデータの閲覧・変更や管理操作が可能になるおそれがあります。
  • 過剰な権限を複数のアカウントに割り当てると、同じミスの影響が広がる可能性があります。

対処方法

  • 業務に必要な操作とリソース ARN に制限し、管理権限は必要な担当者だけに割り当ててください。
  • セット内の他のポリシーと、実際のユーザー・グループ・アカウント割り当てを合わせて確認してください。
  • 必要なアカウントに変更を反映し、正常な業務が成功して未承認の操作が拒否されることを確認してください。

例

同じアクセス許可セットのインラインポリシーを絞る抜粋です。セットとアカウント割り当ては別途設定し、例示したバケット ARN は実際の承認済みバケットに置き換えてください。

変更前

hcl
resource "aws_ssoadmin_permission_set_inline_policy" "example" {
  instance_arn       = aws_ssoadmin_permission_set.example.instance_arn
  permission_set_arn = aws_ssoadmin_permission_set.example.arn
  inline_policy = <<POLICY
{
  "Statement": [
    {
      "Action": [
        "*"
      ],
      "Effect": "Allow",
      "Resource": [
        "*"
      ],
      "Sid": ""
    }
  ],
  "Version": "2012-10-17"
}
POLICY
}

全操作・全リソースを許可しています。このセットを実際に割り当てたアカウント、ユーザー、グループへの影響を確認してください。

変更後

hcl
resource "aws_ssoadmin_permission_set_inline_policy" "example" {
  instance_arn       = aws_ssoadmin_permission_set.example.instance_arn
  permission_set_arn = aws_ssoadmin_permission_set.example.arn
  inline_policy = <<POLICY
{
  "Statement": [
    {
      "Action": [
        "s3:ListBucket*",
        "s3:Get*"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::example-bucket-one",
        "arn:aws:s3:::example-bucket-one/*",
        "arn:aws:s3:::example-bucket-two",
        "arn:aws:s3:::example-bucket-two/*"
      ],
      "Sid": ""
    }
  ],
  "Version": "2012-10-17"
}
POLICY
}

二つのバケットの ListBucket*・Get* 操作に絞っています。Get* は複数の取得操作を含むため、より狭い要件では実際に必要な操作を明示してください。

参考資料