ポリシー評価のガイドライン - AWS Identity and Access Management

ポリシー評価のガイドライン

AWS は、送信されてきたポリシーを一連のガイドラインに照らして評価します。ポリシーテンプレートとアクセス許可の境界には同一の評価ガイドラインを適用し、必要に応じて両者の微妙な違いを指摘します。

当社は、評価のためサービスを複数のグループに分類しています。最も重要なグループは、アクセス許可、認証情報、キーを管理する機密性の高いサービスが対象です。こうしたサービスへのアクセスを付与するポリシーは、そこで行われる作業に的を絞る必要があります。機密性の高いサービスには、AWS Identity and Access Management (IAM)、AWS Key Management Service (KMS)、AWS Resource Access Manager (RAM)、AWS IAM Identity Center、AWS Organizations、AWS Secrets Manager などがあります。

もう 1 つのグループは、アカウントの境界を越えてデータにアクセスできるサービスです。このサービス向けのポリシーには、意図しないクロスアカウントアクセスを防ぐ保護を含める必要があります。

すべてのポリシーに共通する確認事項

すべてのポリシーステートメントは、次のガイドラインに従う必要があります。

  • すべてのステートメントには、Effect、Action (または NotAction)、Resource、Condition の各フィールドがこの順番で含まれている必要があります

  • 1 個のステートメントに含まれるすべてのアクションは、アルファベット順に並べる必要があります。

  • ポリシーに含まれるすべての ARN は、関連するサービスの公開ドキュメントで定義された構文に、従っている必要があります。

  • NotAction フィールドは、Deny ステートメントのみで使用できます。

  • Allow ステートメントのアクションには、サービスコードを含める必要があります。汎用のワイルドカード (「*」) は使用できません

機密性の高いサービスの制限事項

上記の機密性の高いサービスには、次の制限が適用されます。

  • Allow ステートメントのアクションは、[service]:* よりも具体的に記す必要があります。

  • 一時的なアクセスポリシーのテンプレートの、Allow ステートメントのアクションには、ワイルドカードを含めることはできません

  • iam:PassRole や iam:CreateServiceLinkedRole のような機密性の高いアクションには、具体的なリソースや条件チェックなどによる追加の絞り込みが必要になります。アクションには以下が含まれます。

    • IAM ロールの通過

    • IAM ロールの変更アクション

    • IAM ポリシーの変更アクション

    • AWS KMS の書き込みまたは暗号化オペレーション

    • AWS RAM の書き込みまたは共有オペレーション

    • シークレットの取得または変更、もしくはリソースポリシーの変更など AWS Secrets Manager のオペレーション

  • その他のアクションでは iam:ListUsers や iam:GetPolicy などのワイルドカードリソースを使用する場合があります

  • iam:CreateAccessKey などの認証情報を管理するアクションはブロックされます

IAM に固有の制限事項

IAM の場合

  • IAM ロールとポリシーには、制限付きの書き込みオペレーションのみが許可されます。ユーザー、グループ、証明書など他の IAM リソースへのアクセス許可をリクエストすることはできません。

  • ポリシーのアタッチ、またはインラインポリシーの管理アクションは、アクセス許可の境界を持つロールに制限されます。アクセス許可の境界は、パートナーが定義するか、または、許可されている AWS 管理ポリシーのリストに含める必要があります。AWS 管理ポリシーは高度な権限または管理者権限を付与していない場合に許可される場合があります。例えば、特定のジョブ機能または SecurityAudit ポリシーの AWS 管理ポリシーは、許容される場合があります。AWS は、オンボーディングプロセス中に各 AWS 管理ポリシーを個別に確認します。

  • ポリシー管理は、次のパートナー固有のパスを持つポリシーのみで許可されます。arn:aws:iam::@{AccountId}:policy/partner_domain.com/[feature]*

  • タグは、リソースの作成時のみ、ロールとポリシーに対してのみ適用できます。

  • iam:PassRole チェックは、特定の名前またはパスプレフィックスと一致している必要があります

AWS STS に固有の制限事項

AWS STS の場合:

  • sts:AssumeRole は、特定のロール ARN、ロール ARN プレフィックスに範囲を絞るか、一連のアカウントまたは組織 ID/組織単位に限定する必要があります

IAM アイデンティティセンターの制限事項

AWS IAM Identity Center では次のアクションはブロックされます。

  • アクセス許可の管理に対応するすべてのアクション (sso:AttachCustomerManagedPolicyReferenceToPermissionSet など)

  • AWS Identity Store のユーザー、グループ、メンバーシップの変更

  • タグの管理

AWS Organizations の制限事項

AWS Organizations では、読み取りアクションのみ許可されます。

その他サービス固有の検証事項

  • シークレットまたは認証情報を取得するアクション (glue:GetConnection や redshift:GetClusterCredentials など) には、完全な ARN、ARN プレフィックス、タグのいずれかに一致する条件が必要です

  • Amazon Redshift の場合、redshift:GetClusterCredentials は、特定のデータベース名のみで許可され、redshift:GetClusterCredentialsWithIAM は、特定のワークグループ名のみで許可されます。

注記

IAM リソースをアカウントで管理する場合は、自分の名前を示すパスを使用することが推奨されます。例: arn:aws:iam::111122223333:role/partner.com/rolename そうすれば、統合に関連するリソースを簡単に見分けられ、顧客は検索、監査、分析を容易に行えます。

クロスアカウントアクセス要件

クロスアカウントアクセスを許可する可能性のあるステートメントには、次のいずれか 1 つを含める必要があります。

  • リソースのアカウントまたは組織を指定する条件 (例: 1 つ以上の想定値に一致する aws:ResourceOrgId)

  • 特定のアカウントを含む Resource フィールド (例: arn:aws:sqs:*:111122223333:*)

  • ワイルドカード以外のアカウントと完全なリソース名を含む Resource フィールド (例: arn:aws:s3:::full–bucket–name)

注記

クロスアカウントアクセスは、ビジネス上の正当化根拠を必要とする機密性の高い機能です。クロスアカウントアクセスの必要性は、AWS がオンボーディングプロセス中に慎重に確認作業を行います。