Access Analyzer ポリシーチェックリファレンス
AWS Identity and Access Management Access Analyzer ポリシー検証を使用してポリシーを検証できます。IAM コンソールの AWS CLI、AWS API、または JSON ポリシーエディタを使用して、ポリシーを作成または編集できます。IAM Access Analyzer は、IAM ポリシーの文法および AWS ベストプラクティスに照らしてポリシーを検証します。セキュリティ警告、エラー、一般的な警告、ポリシーの提案を含むポリシー検証チェックの結果を表示できます。これらの結果により、機能的でセキュリティのベストプラクティスに準拠したポリシーの作成に役立つ実用的な推奨事項が示されます。IAM Access Analyzer が提供する基本ポリシーチェックのリストを以下に示します。ポリシー検証チェックの実行に関連する追加料金は発生しません。ポリシー検証を使用したポリシーの検証の詳細については、「IAM Access Analyzer でポリシーを検証する」を参照してください。
エラー — ARN アカウントは許可されていません
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
ARN account not allowed: The service {{service}} does not support specifying an account ID in the resource ARN.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The service {{service}} does not support specifying an account ID in the resource ARN."
エラーの解決
リソース ARN からアカウント ID を削除します。一部の AWS サービスのリソース ARN は、アカウント ID の指定をサポートしていません。
たとえば、Amazon S3 では、アカウント ID をバケット ARN の名前空間としてサポートしていません。Amazon S3 バケット名はグローバルに一意であり、名前空間はすべての AWS アカウントによって共有されています。Amazon S3 で利用可能なすべてのリソースタイプを表示するには、「サービス認可リファレンス」の「Amazon S3 で定義されたリソースタイプ」を参照してください。
関連用語
エラー — ARN リージョンは許可されていません
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
ARN Region not allowed: The service {{service}} does not support specifying a Region in the resource ARN.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The service {{service}} does not support specifying a Region in the resource ARN."
エラーの解決
リソース ARN からリージョンを削除します。一部の AWS サービスのリソース ARN は、リージョンの指定をサポートしていません。
たとえば、IAM はグローバルサービスです。IAM リソース ARN のリージョン部分は常に空白のままです。AWS アカウントが今日あるように、IAM リソースはグローバルです。たとえば、IAM ユーザーとしてサインインすると、あらゆるリージョンの AWS サービスにアクセスできます。
エラー — データ型の不一致
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Data type mismatch: The text does not match the expected JSON data type {{data_type}}.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The text does not match the expected JSON data type {{data_type}}."
エラーの解決
サポートされているデータ型を使用するようにテキストを更新します。
たとえば、Version
グローバル条件キーには String
データ型が必要です。日付または整数を指定すると、データ型が一致しません。
関連用語
エラー - 大文字と小文字が違う重複したキー
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Duplicate keys with different case: The condition key {{key}} appears more than once with different capitalization in the same condition block. Remove the duplicate condition keys.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The condition key {{key}} appears more than once with different capitalization in the same condition block. Remove the duplicate condition keys."
エラーの解決
同じ条件ブロック内の同様の条件キーを確認し、すべてのインスタンスで同じ大文字を使用します。
条件ブロックは、ポリシーステートメントの Condition
要素内のテキストです。条件キーの名前は大文字小文字を区別しません。条件キーの値の大文字と小文字の区別は、使用する条件演算子によって異なります。条件キーでの大文字と小文字の区別に関する詳細については、IAM JSON ポリシー要素Conditionを参照してください。
関連用語
エラー — 無効なアクション
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Invalid action: The action {{action}} does not exist. Did you mean {{valid_action}}?
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The action {{action}} does not exist. Did you mean {{valid_action}}?"
エラーの解決
指定されたアクションが無効です。これは、サービスプレフィックスまたはアクション名を誤って入力した場合に発生します。一般的な問題については、ポリシーチェックによって推奨されるアクションが返されます。
関連用語
このエラーが発生した AWS 管理ポリシー
AWS 管理ポリシーを使用すると、一般的な AWS のユースケースに基づいてアクセス許可を割り当てることにより、AWS の使用を開始できます。
次の AWS 管理ポリシーには、ポリシーステートメントに無効なアクションが含まれています。無効なアクションは、ポリシーで付与されるアクセス権限には影響しません。AWS 管理ポリシーを参照として使用して、管理ポリシーを作成する場合、AWS がポリシーから無効なアクションを削除することをお勧めします。
エラー — 無効な ARN アカウント
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Invalid ARN account: The resource ARN account ID {{account}} is not valid. Provide a 12-digit account ID.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The resource ARN account ID {{account}} is not valid. Provide a 12-digit account ID."
エラーの解決
リソース ARN のアカウント ID を更新します。アカウント ID は 12 桁の整数です。アカウント ID を表示する方法については、「AWS アカウント IDの検索」を参照してください。
関連用語
エラー — 無効な ARN プレフィックス
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Invalid ARN prefix: Add the required prefix (arn) to the resource ARN.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Add the required prefix (arn) to the resource ARN."
エラーの解決
AWS リソースARNには、必要な arn:
プレフィックスを含める必要があります。
関連用語
エラー — 無効な ARN リージョン
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Invalid ARN Region: The Region {{region}} is not valid for this resource. Update the resource ARN to include a supported Region.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The Region {{region}} is not valid for this resource. Update the resource ARN to include a supported Region."
エラーの解決
リソースタイプは、指定されたリージョンではサポートされていません。各リージョンでサポートされている AWS サービスの表については、リージョン表リージョン表
関連用語
エラー — 無効な ARN リソース
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Invalid ARN resource: Resource ARN does not match the expected ARN format. Update the resource portion of the ARN.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Resource ARN does not match the expected ARN format. Update the resource portion of the ARN."
エラーの解決
リソース ARN は、既知のリソースタイプの仕様と一致する必要があります。サービスに期待される ARN 形式を表示するには、「AWS サービスのアクション、リソース、および条件キー」を参照してください。サービスの名前を選択して、そのリソースタイプと ARN 形式を表示します。
関連用語
エラー — 無効な ARN サービスのケース
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Invalid ARN service case: Update the service name ${service} in the resource ARN to use all lowercase letters.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Update the service name ${service} in the resource ARN to use all lowercase letters."
エラーの解決
リソース ARN 内のサービスは、サービスプレフィックスの仕様 (大文字化を含む) と一致する必要があります。サービスのプレフィックスについては、「AWS のサービスの アクション、リソース、および条件キー」を参照してください。サービスの名前を選択し、最初の文でそのプレフィックスを見つけます。
関連用語
エラー - 無効な条件データ型
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Invalid condition data type: The condition value data types do not match. Use condition values of the same JSON data type.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The condition value data types do not match. Use condition values of the same JSON data type."
エラーの解決
条件キーと値のペアの値は、条件キーと条件演算子のデータ型と一致する必要があります。サービスの条件キーのデータ型を表示するには、「AWS サービスのアクション、リソース、および条件キー」を参照してください。サービスの名前を選択すると、そのサービスの条件キーが表示されます。
たとえば、CurrentTime グローバル条件キーは Date
条件演算子を使用します。条件ブロックの値に文字列または整数を指定すると、データ型は一致しません。
関連用語
エラー - 無効な条件キーの形式
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Invalid condition key format: The condition key format is not valid. Use the format service:keyname.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The condition key format is not valid. Use the format service:keyname."
エラーの解決
条件のキーと値のペアのキーは、サービスの仕様と一致する必要があります。サービスの条件キーを表示するには、「AWS のサービスのアクション、リソース、および条件キー」を参照してください。サービスの名前を選択すると、そのサービスの条件キーが表示されます。
関連用語
エラー - 無効な条件の複数ブール値
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Invalid condition multiple Boolean: The condition key does not support multiple Boolean values. Use a single Boolean value.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The condition key does not support multiple Boolean values. Use a single Boolean value."
エラーの解決
条件キーと値のペアのキーは、単一のブール値を想定しています。複数のブール値を指定すると、条件一致によって期待どおりの結果が返されないことがあります。
サービスの条件キーを表示するには、「AWS のサービスのアクション、リソース、および条件キー」を参照してください。サービスの名前を選択すると、そのサービスの条件キーが表示されます。
エラー - 無効な条件演算子
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Invalid condition operator: The condition operator {{operator}} is not valid. Use a valid condition operator.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The condition operator {{operator}} is not valid. Use a valid condition operator."
エラーの解決
条件を更新して、サポートされている条件演算子を使用します。
関連用語
エラー — 無効な効果
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Invalid effect: The effect {{effect}} is not valid. Use Allow or Deny.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The effect {{effect}} is not valid. Use Allow or Deny."
エラーの解決
Effect
要素を更新して、有効な効果を使用します。Effect
の有効値は、Allow
と Deny
です。
関連用語
エラー — 無効なグローバル条件キー
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Invalid global condition key: The condition key {{key}} does not exist. Use a valid condition key.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The condition key {{key}} does not exist. Use a valid condition key."
エラーの解決
条件のキーバリューのペアの条件キーを更新して、サポートされているグローバル条件キーを使用します。
グローバル条件キーは、aws:
プレフィックスが付いた条件キーです。AWS のサービスは、グローバル条件キーをサポートするか、サービスプレフィックスを含むサービス固有のキーを提供できます。たとえば、IAM 条件キーには iam:
プレフィックスが含まれます。詳細については、「AWS のサービスのアクション、リソース、および条件キー」を参照し、キーを表示するサービスを選択します。
関連用語
エラー — 無効なパーティション
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Invalid partition: The resource ARN for the service {{service}} does not support the partition {{partition}}. Use the supported values: {{partitions}}
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The resource ARN for the service {{service}} does not support the partition {{partition}}. Use the supported values: {{partitions}}"
エラーの解決
リソース ARN を更新して、サポートされているパーティションを含めます。サポートされているパーティションを含めると、サービスまたはリソースは含めたパーティションをサポートしていない可能性があります。
パーティションは AWS リージョンのグループです。各 AWS アカウントのスコープは 1 つのパーティションです。クラシックリージョンでは、aws
パーティションを使用します。中国リージョンでは、aws-cn
を使用します。
関連用語
エラー — 無効なポリシー要素
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Invalid policy element: The policy element {{element}} is not valid.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The policy element {{element}} is not valid."
エラーの解決
サポートされている JSON ポリシーの要素のみを含めるようにポリシーを更新します。
関連用語
エラー - 無効なプリンシパル形式
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Invalid principal format: The Principal element contents are not valid. Specify a key-value pair in the Principal element.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The Principal element contents are not valid. Specify a key-value pair in the Principal element."
エラーの解決
プリンシパルを更新して、サポートされているキーと値のペアの形式を使用します。
リソースベースのポリシーでは、プリンシパルを指定できますが、アイデンティティベースのポリシーでは指定できません。
たとえば、 AWS アカウント内のすべてのユーザーのアクセスを定義するには、ポリシーで次のプリンシパルを使用します。
"Principal": { "AWS": "123456789012" }
関連用語
エラー — 無効なプリンシパルキー
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Invalid principal key: The principal key {{principal-key}} is not valid.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The principal key {{principal-key}} is not valid."
エラーの解決
プリンシパルキーバリューのペアのキーを更新して、サポートされているプリンシパルキーを使用します。サポートされているプリンシパルキーは次のとおりです。
AWS
CanonicalUser
Federated
サービス
関連用語
エラー — 無効なリージョン
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Invalid Region: The Region {{region}} is not valid. Update the condition value to a suported Region.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The Region {{region}} is not valid. Update the condition value to a suported Region."
エラーの解決
条件キーと値のペアの値を更新し、サポートされているリージョンを含めます。各リージョンでサポートされている AWS サービスの表については、リージョン表リージョン表
関連用語
エラー — 無効なサービス
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Invalid service: The service {{service}} does not exist. Use a valid service name.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The service {{service}} does not exist. Use a valid service name."
エラーの解決
アクションまたは条件キーのサービスプレフィックスは、サービスプレフィックスの仕様 (大文字化を含む) と一致する必要があります。サービスのプレフィックスを表示するには、「AWS サービスのアクション、リソース、条件キー」を参照してください。サービスの名前を選択し、最初の文でそのプレフィックスを見つけます。
関連用語
エラー — 無効なサービス条件キー
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Invalid service condition key: The condition key {{key}} does not exist in the service {{service}}. Use a valid condition key.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The condition key {{key}} does not exist in the service {{service}}. Use a valid condition key."
エラーの解決
サービスの既知の条件キーを使用するには、条件キーと値のペアのキーを更新します。グローバル条件キーは、aws
プレフィックスを持つ条件キーです。AWS のサービスは、サービスプレフィックスを含むサービス固有のキーを提供できます。サービスのプレフィックスを表示するには、「AWS サービスのアクション、リソース、条件キー」を参照してください。
関連用語
エラー — 無効なサービスが動作しています
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Invalid service in action: The service {{service}} specified in the action does not exist. Did you mean {{service2}}?
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The service {{service}} specified in the action does not exist. Did you mean {{service2}}?"
エラーの解決
アクションのサービスプレフィクスは、サービスプレフィクスの仕様 (大文字化を含む) と一致する必要があります。サービスのプレフィックスを表示するには、「AWS サービスのアクション、リソース、条件キー」を参照してください。サービスの名前を選択し、最初の文でそのプレフィックスを見つけます。
関連用語
エラー — 無効な演算子の変数
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Invalid variable for operator: Policy variables can only be used with String and ARN operators.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Policy variables can only be used with String and ARN operators."
エラーの解決
Resource
要素のポリシー変数、および Condition
要素の文字列比較を活用できます。条件では、文字列演算子または ARN 演算子を使用するときに変数がサポートされます。文字列演算子には StringEquals
、 StringLike
、 StringNotLike
が含まれます。ARN 演算子には ArnEquals
と ArnLike
が含まれます。ポリシー変数は、 数値、日付、ブール値、バイナリ、IPアドレス、Null演算子などの他の演算子では使用できません。
関連用語
エラー — 無効なバージョン
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Invalid version: The version ${version} is not valid. Use one of the following versions: ${versions}
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The version ${version} is not valid. Use one of the following versions: ${versions}"
エラーの解決
Version
ポリシー要素は、AWS このポリシーを処理するために使用される言語構文ルールを指定します。ポリシーの使用可能なすべての機能を使用するには、すべてのポリシーの Statement
要素の前に最新の Version
要素を含めます。
"Version": "2012-10-17"
関連用語
エラー - Json 構文エラー
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Json syntax error: Fix the JSON syntax error at index {{index}} line {{line}} column {{column}}.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Fix the JSON syntax error at index {{index}} line {{line}} column {{column}}."
エラーの解決
ポリシーに構文エラーがあります。JSON 構文を確認してください。
関連用語
エラー - Json 構文エラー
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Json syntax error: Fix the JSON syntax error.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Fix the JSON syntax error."
エラーの解決
ポリシーに構文エラーがあります。JSON 構文を確認してください。
関連用語
エラー — アクションが見つかりません
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Missing action: Add an Action or NotAction element to the policy statement.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Add an Action or NotAction element to the policy statement."
エラーの解決
AWSJSON ポリシーには Action
または NotAction
要素を含める必要があります。
関連用語
エラー — ARN フィールドがありません
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Missing ARN field: Resource ARNs must include at least {{fields}} fields in the following structure: arn:partition:service:region:account:resource
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Resource ARNs must include at least {{fields}} fields in the following structure: arn:partition:service:region:account:resource"
エラーの解決
リソース ARN のすべてのフィールドは、既知のリソースタイプの仕様と一致する必要があります。サービスに期待される ARN 形式を表示するには、「AWS サービスのアクション、リソース、および条件キー」を参照してください。サービスの名前を選択して、そのリソースタイプと ARN 形式を表示します。
関連用語
エラー — ARN リージョンがありません
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Missing ARN Region: Add a Region to the {{service}} resource ARN.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Add a Region to the {{service}} resource ARN."
エラーの解決
ほとんどの AWS サービスのリソース ARN では、リージョンを指定する必要があります。各リージョンでサポートされている AWS サービスの表については、リージョン表リージョン表
関連用語
エラー — 効果がありません
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Missing effect: Add an Effect element to the policy statement with a value of Allow or Deny.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Add an Effect element to the policy statement with a value of Allow or Deny."
エラーの解決
AWS JSON ポリシーには Effect
および Allow
の値を持つ Deny
要素を含める必要があります。
関連用語
エラー — プリンシパルが見つかりません
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Missing principal: Add a Principal element to the policy statement.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Add a Principal element to the policy statement."
エラーの解決
リソースベースのポリシーには Principal
要素を含める必要があります。
たとえば、 AWS アカウント内のすべてのユーザーのアクセスを定義するには、ポリシーで次のプリンシパルを使用します。
"Principal": { "AWS": "123456789012" }
関連用語
エラー - 修飾子がありません
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Missing qualifier: The request context key ${key} has multiple values. Use the ForAllValues or ForAnyValue condition key qualifiers in your policy.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The request context key ${key} has multiple values. Use the ForAllValues or ForAnyValue condition key qualifiers in your policy."
エラーの解決
Condition
要素に、条件演算子 (等しい、より小さい、など) を使用して、ポリシーの条件キーと値をリクエストコンテキストのキーと値に一致させる式を構築します。1 つの条件キーに複数の値が含まれるリクエストの場合、配列のように条件を角括弧で囲む必要があります ("Key2":["Value2A", "Value2B"])。また、 ForAllValues
または ForAnyValue
set 演算子を StringLike
条件演算子とともに使用する必要もあります。これらの限定子によって条件演算子にセット演算機能が追加されるため、複数のリクエスト値を複数の条件値と照合できます。
関連用語
このエラーが発生した AWS 管理ポリシー
AWS 管理ポリシーを使用すると、一般的な AWS のユースケースに基づいてアクセス許可を割り当てることにより、AWS の使用を開始できます。
次の AWS 管理ポリシーでは、ポリシーステートメントに条件キーの修飾子がありません。AWS 管理ポリシーを参照として使用してカスタマー管理ポリシーを作成する場合、 AWS は ForAllValues
または ForAnyValue
条件キー修飾子を Condition
要素に追加することをお勧めします。
エラー — リソースがありません
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Missing resource: Add a Resource or NotResource element to the policy statement.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Add a Resource or NotResource element to the policy statement."
エラーの解決
ロール信頼ポリシーを除くすべてのポリシーには、Resource
または NotResource
要素を含める必要があります。
関連用語
エラー — ステートメントが見つかりません
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Missing statement: Add a statement to the policy
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Add a statement to the policy"
エラーの解決
JSON ポリシーには、ステートメントを含める必要があります。
関連用語
エラー — 存在する場合はNULL
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Null with if exists: The Null condition operator cannot be used with the IfExists suffix. Update the operator or the suffix.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The Null condition operator cannot be used with the IfExists suffix. Update the operator or the suffix."
エラーの解決
IfExists
条件演算子を除く任意の条件演算子名の末尾に Null
を追加できます。条件キーが承認時に存在するかどうかを確認するには、Null
条件演算子を使用します。...ifExists
を使用して、「ポリシーキーがリクエストのコンテキストで存在する場合、ポリシーで指定されたとおりにキーを処理します。キーが存在しない場合、条件要素は true と評価されます。」
関連用語
エラー — SCP 構文エラー処理のワイルドカード
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
SCP syntax error action wildcard: SCP actions can include wildcards (*) only at the end of a string. Update {{action}}.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "SCP actions can include wildcards (*) only at the end of a string. Update {{action}}."
エラーの解決
AWS Organizations サービスコントロールポリシー (SCP) では、Action
または NotAction
要素での値の指定をサポートします。ただし、これらの値には、文字列の末尾にのみワイルドカード (*) を含めることができます。つまり、iam:Get*
は指定できますが、iam:*role
は指定できません。
複数のアクションを指定するには、AWSは、個別にリストすることをお勧めします。
関連用語
エラー — SCP 構文エラー 条件を許可
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
SCP syntax error allow condition: SCPs do not support the Condition element with effect Allow. Update the element Condition or the effect.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "SCPs do not support the Condition element with effect Allow. Update the element Condition or the effect."
エラーの解決
AWS Organizations サービスコントロールポリシー (SCP) では、Condition
を使用する場合にのみ "Effect": "Deny"
要素に値を指定することをサポートします。
単一のアクションのみを許可するために、...NotEquals
バージョンの条件演算子を使用して指定した条件以外のすべてへのアクセスを拒否できます。これは、演算子によって行われた比較を無効にします。
関連用語
エラー — SCP 構文エラー NotAction を許可
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
SCP syntax error allow NotAction: SCPs do not support NotAction with effect Allow. Update the element NotAction or the effect.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "SCPs do not support NotAction with effect Allow. Update the element NotAction or the effect."
エラーの解決
AWS Organizationsサービスコントロールポリシー (SCP) は、NotAction
での "Effect": "Allow"
要素の使用をサポートしていません。
アクションのリストを許可するか、またはリストされていないすべてのアクションを拒否するには、ロジックを書き直す必要があります。
関連用語
エラー — SCP 構文エラー リソースを許可
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
SCP syntax error allow resource: SCPs do not support Resource with effect Allow. Update the element Resource or the effect.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "SCPs do not support Resource with effect Allow. Update the element Resource or the effect."
エラーの解決
AWS Organizationsサービスコントロールポリシー (SCP) では、Resource
を使用する場合にのみ "Effect": "Deny"
要素に値を指定することをサポートします。
すべてのリソースを許可するか、リストされているすべてのリソースを拒否するには、ロジックを書き直す必要があります。
関連用語
エラー — SCP 構文エラー NotResource
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
SCP syntax error NotResource: SCPs do not support the NotResource element. Update the policy to use Resource instead.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "SCPs do not support the NotResource element. Update the policy to use Resource instead."
エラーの解決
AWS Organizationsサービスコントロールポリシー (SCP) は、NotResource
要素をサポートしていません。
すべてのリソースを許可するか、リストされているすべてのリソースを拒否するには、ロジックを書き直す必要があります。
関連用語
エラー — SCP 構文エラー プリンシパル
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
SCP syntax error principal: SCPs do not support specifying principals. Remove the Principal or NotPrincipal element.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "SCPs do not support specifying principals. Remove the Principal or NotPrincipal element."
エラーの解決
AWS Organizationsサービスコントロールポリシー (SCP) は、Principal
または NotPrincipal
要素をサポートしていません。
aws:PrincipalArn
要素の Condition
グローバル条件キーを使用してAmazon リソースネーム (ARN) を指定できます。
関連用語
エラー — 一意の Sid が必要です
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Unique Sids required: Duplicate statement IDs are not supported for this policy type. Update the Sid value.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Duplicate statement IDs are not supported for this policy type. Update the Sid value."
エラーの解決
一部のポリシータイプでは、ステートメント ID は一意である必要があります。Sid
(ステートメント ID) 要素を使用すると、ポリシーステートメントに指定するオプションの識別子を入力できます。SID
要素を使用して、ステートメント配列内の各ステートメントにステートメントID値を割り当てることができます。SQS や SNS などの エレメントを特定するサービスでは、Sid
値はポリシードキュメント ID のサブ ID に過ぎません。たとえば、IAM では、Sid
値は JSON ポリシー内で固有のものである必要があります。
関連用語
エラー — ポリシーでサポートされていないアクション
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Unsupported action in policy: The action {{action}} is not supported for the resource-based policy attached to the resource type {{resourceType}}.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The action {{action}} is not supported for the resource-based policy attached to the resource type {{resourceType}}."
エラーの解決
一部のアクションは、異なるリソースタイプに添付された、リソースベースのポリシーの Action
エレメントではサポートされていません。例えば、 AWS Key Management Service アクションは、Amazon S3 バケットのポリシーではサポートされていません。リソースベースのポリシーに添付のリソースタイプでサポートされているアクションを指定してください。
関連用語
エラー - サポートされていない要素の組み合わせ
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Unsupported element combination: The policy elements ${element1} and ${element2} can not be used in the same statement. Remove one of these elements.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The policy elements ${element1} and ${element2} can not be used in the same statement. Remove one of these elements."
エラーの解決
JSON ポリシーの要素の組み合わせによっては、一緒に使用できないものもあります。たとえば、Action
と NotAction
を同じポリシーステートメントで使用することはできません。相互に排他的な他のペアには、Principal/NotPrincipal
とResource/NotResource
が含まれます。
関連用語
エラー — サポートされていないグローバル条件キー
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Unsupported global condition key: The condition key aws:ARN is not supported. Use aws:PrincipalArn or aws:SourceArn instead.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The condition key aws:ARN is not supported. Use aws:PrincipalArn or aws:SourceArn instead."
エラーの解決
AWS は、指定されたグローバル条件キーの使用をサポートしていません。ユースケースに応じて、aws:PrincipalArn
またはaws:SourceArn
グローバル条件キーを使用できます。たとえば、aws:ARN
の代わりに aws:PrincipalArn
を使用して、リクエストを行ったプリンシパルの Amazon リソースネーム (ARN) をポリシーで指定した ARN と比較します。代わりに、aws:SourceArn
グローバル条件キーを使用して、サービス間リクエストを行っているリソースの Amazon リソースネーム (ARN) を、ポリシーで指定した ARN と比較します。
関連用語
エラー — サポートされていないプリンシパル
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Unsupported principal: The policy type ${policy_type} does not support the Principal element. Remove the Principal element.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The policy type ${policy_type} does not support the Principal element. Remove the Principal element."
エラーの解決
Principal
要素は、リソースへのアクセスを許可または拒否するプリンシパルを指定します。Principal
エレメントを IAM アイデンティティベースのポリシーで使用することはできません。これは、IAM ロール用の信頼ポリシーおよびリソースベースのポリシーで使用することができます。リソースベースのポリシーは、リソースに直接埋め込むポリシーです。たとえば、Amazon S3 バケットあるいは AWS KMS キーにポリシーを埋め込むことができます。
関連用語
エラー — ポリシーでサポートされていないリソース ARN
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Unsupported resource ARN in policy: The resource ARN is not supported for the resource-based policy attached to the resource type {{resourceType}}.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The resource ARN is not supported for the resource-based policy attached to the resource type {{resourceType}}."
エラーの解決
ポリシーが異なるリソースタイプに添付されている場合、一部のリソース ARN は、リソースベースのポリシーの Resource
エレメントではサポートされていません。例えば、 AWS KMS ARN は Amazon S3 バケットの Resource
ポリシーではサポートされていません。リソースベースのポリシーに添付のリソースタイプでサポートされているリソース ARN を指定してください。
関連用語
エラー — サポートされていない Sid
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Unsupported Sid: Update the characters in the Sid element to use one of the following character types: [a-z, A-Z, 0-9]
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Update the characters in the Sid element to use one of the following character types: [a-z, A-Z, 0-9]"
エラーの解決
Sid
要素では、大文字、小文字、および数字をサポートしています。
関連用語
エラー - プリンシパルでサポートされていないワイルドカード
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Unsupported wildcard in principal: Wildcards (*, ?) are not supported with the principal key {{principal_key}}. Replace the wildcard with a valid principal value.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Wildcards (*, ?) are not supported with the principal key {{principal_key}}. Replace the wildcard with a valid principal value."
エラーの解決
Principal
要素構造体は、キーバリューのペアの使用をサポートしています。ポリシーで指定されたプリンシパル値には、ワイルドカード (*) が含まれます。指定したプリンシパルキーにワイルドカードを含めることはできません。たとえば、Principal
エレメント内でユーザーを指定する際に、"すべてのユーザー" の意味でワイルドカード () を使用することはできません。特定のユーザーに名前を付ける必要があります。同様に、要素で引き受けたロールセッションを指定する場合、ワイルドカードを使用して「すべてのセッション」を意味することはできません。特定のセッションに名前を付ける必要があります。また、ワイルドカードとして使用して、名前または ARN の一部に一致させることはできません。
この結果を解決するには、ワイルドカードを削除し、より具体的なプリンシパルを指定します。
関連用語
エラー - 変数に中括弧がありません
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Missing brace in variable: The policy variable is missing a closing curly brace. Add } after the variable text.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The policy variable is missing a closing curly brace. Add } after the variable text."
エラーの解決
ポリシー変数構造は、$
プレフィックスとそれに続く中括弧 ({ }
) のペアの使用をサポートします。${ }
文字の中に、ポリシーで使用するリクエストの値の名前を含めます。
この結果を解決するには、欠落している中括弧を追加して、中括弧の完全な開閉セットが存在することを確認します。
関連用語
エラー - 変数に引用符がありません
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Missing quote in variable: The policy variable default value must begin and end with a single quote. Add the missing quote.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The policy variable default value must begin and end with a single quote. Add the missing quote."
エラーの解決
ポリシーに変数を追加するときに、変数のデフォルト値を指定できます。変数が存在しない場合、AWS では、指定されたデフォルトのテキストが使用されます。
変数にデフォルト値を追加するには、デフォルト値を一重引用符 (' '
) で囲み、変数テキストとデフォルト値をコンマとスペース (,
) で区切ります。
例えば、プリンシパルが team=yellow
でタグ付けされている場合、amzn-s3-demo-bucket-yellow
という名前で amzn-s3-demo-bucket
Amazon S3 バケットにアクセスできます。このリソースを使用するポリシーでは、チームメンバーが自分のリソースにアクセスすることは許可されますが、他のチームのリソースにアクセスすることはできません。チームタグのないユーザーには、company-wide
のデフォルト値を設定できます。これらのユーザーは amzn-s3-demo-bucket-company-wide
バケットにのみアクセスでき、チームへの参加方法などの一般的な情報を確認できます。
"Resource":"arn:aws:s3:::amzn-s3-demo-bucket-
${aws:PrincipalTag/team, 'company-wide
'}"
関連用語
エラー — 変数でサポートされていないスペース
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Unsupported space in variable: A space is not supported within the policy variable text. Remove the space.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "A space is not supported within the policy variable text. Remove the space."
エラーの解決
ポリシー変数構造は、$
プレフィックスとそれに続く中括弧 ({ }
) のペアの使用をサポートします。${ }
文字の中に、ポリシーで使用するリクエストの値の名前を含めます。デフォルトの変数を指定するときにスペースを含めることはできますが、変数名にスペースを含めることはできません。
関連用語
エラー — 空の変数
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Empty variable: Empty policy variable. Remove the ${ } variable structure or provide a variable within the structure.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Empty policy variable. Remove the ${ } variable structure or provide a variable within the structure."
エラーの解決
ポリシー変数構造は、$
プレフィックスとそれに続く中括弧 ({ }
) のペアの使用をサポートします。${ }
文字の中に、ポリシーで使用するリクエストの値の名前を含めます。
関連用語
エラー - 要素で変数がサポートされていません
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Variable unsupported in element: Policy variables are supported in the Resource and Condition elements. Remove the policy variable {{variable}} from this element.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Policy variables are supported in the Resource and Condition elements. Remove the policy variable {{variable}} from this element."
エラーの解決
Resource
要素のポリシー変数、および Condition
要素の文字列比較を活用できます。
関連用語
エラー — 変数はバージョンでサポートされていません
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Variable unsupported in version: To include variables in your policy, use the policy version 2012-10-17 or later.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "To include variables in your policy, use the policy version 2012-10-17 or later."
エラーの解決
ポリシー変数を使用するには、ステートメントに Version
エレメントを含めて、ポリシー変数をサポートするバージョンに設定する必要があります。変数はバージョン 2012-10-17
から導入されました。旧バージョンでのポリシー言語では、ポリシー変数をサポートしていません。Version
を 2012-10-17
以降に設定しない場合、${aws:username}
などの変数はポリシーでリテラル文字列として扱われます。
Version
ポリシー要素は、ポリシーバージョンとは異なります。Version
ポリシー要素は、ポリシー内で使用され、ポリシー言語のバージョンを定義します。ポリシーバージョンは、IAM でカスタマーマネージド型ポリシーを変更すると作成されます。変更されたポリシーによって既存のポリシーが上書きされることはありません。代わりに、IAM はマネージド型ポリシーの新しいバージョンを作成します。
関連用語
エラー — プライベート IP アドレス
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Private IP address: aws:SourceIp works only for public IP address ranges. The values for condition key aws:SourceIp include only private IP addresses and will not have the desired effect. Update the value to include only public IP addresses.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "aws:SourceIp works only for public IP address ranges. The values for condition key aws:SourceIp include only private IP addresses and will not have the desired effect. Update the value to include only public IP addresses."
エラーの解決
グローバル条件キーは、aws:SourceIp
パブリック IP アドレス範囲に対してのみ機能します。このエラーは、ポリシーでプライベート IP アドレスのみが許可されている場合に表示されます。この場合、条件は一致しません。
エラー — プライベート通知アドレス
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Private NotIpAddress: The values for condition key aws:SourceIp include only private IP addresses and has no effect. aws:SourceIp works only for public IP address ranges. Update the value to include only public IP addresses.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The values for condition key aws:SourceIp include only private IP addresses and has no effect. aws:SourceIp works only for public IP address ranges. Update the value to include only public IP addresses."
エラーの解決
グローバル条件キーは、aws:SourceIp
パブリック IP アドレス範囲に対してのみ機能します。NotIpAddress
条件演算子を使用し、プライベートIPアドレスのみをリストすると、このエラーが発生します。この場合、条件は常に一致し、効果がありません。
エラー — ポリシーのサイズが SCP クォータを超えています
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Policy size exceeds SCP quota: The {{policySize}} characters in the service control policy (SCP) exceed the {{policySizeQuota}} character maximum for SCPs. We recommend that you use multiple granular policies.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The {{policySize}} characters in the service control policy (SCP) exceed the {{policySizeQuota}} character maximum for SCPs. We recommend that you use multiple granular policies."
エラーの解決
AWS Organizations サービスコントロールポリシー (SCP) では、Action
または NotAction
要素での値の指定をサポートします。ただし、これらの値には、文字列の末尾にのみワイルドカード (*) を含めることができます。つまり、iam:Get*
は指定できますが、iam:*role
は指定できません。
複数のアクションを指定するには、AWSは、個別にリストすることをお勧めします。
関連用語
エラー — 無効なサービスプリンシパルの形式
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Invalid service principal format: The service principal does not match the expected format. Use the format {{expectedFormat}}.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The service principal does not match the expected format. Use the format {{expectedFormat}}."
エラーの解決
条件のキーバリューのペアの値は、定義されたサービスプリンシパルの形式と一致する必要があります。
サービスプリンシパルは、サービスにアクセス許可を付与するために使用される識別子です。Principal
エレメントか、一部のグローバル条件キーとサービス固有のキーの値で、サービスプリンシパルを指定できます。サービスプリンシパルは各サービスによって定義されます。
サービスプリンシパルの識別子にはサービス名が含まれ、通常はすべて小文字で、次の形式になります。
service-name
.amazonaws.com
サービス固有のキーによっては、サービスプリンシパルの形式が異なる場合があります。例えば、kms:ViaService
条件キーには、サービスプリンシパルは小文字で、次の形式になっている必要があります。
service-name.AWS_region
.amazonaws.com
関連用語
エラー — 条件にタグキーがありません
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Missing tag key in condition: The condition key {{conditionKeyName}} must include a tag key to control access based on tags. Use the format {{conditionKeyName}}tag-key and specify a key name for tag-key.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The condition key {{conditionKeyName}} must include a tag key to control access based on tags. Use the format {{conditionKeyName}}tag-key and specify a key name for tag-key."
エラーの解決
タグに基づいてアクセスを制御するには、ポリシーの条件要素でタグ情報を提供します。
たとえば、AWS リソースへのアクセスをコントロールするには、aws:ResourceTag
条件キーを含めます。このキーには、形式 aws:ResourceTag/
が必要です。条件でタグキー tag-key
owner
とタグ値 JaneDoe
を指定するには、次の形式を使用します。
"Condition": {
"StringEquals": {"aws:ResourceTag/owner": "JaneDoe"}
}
関連用語
エラー — VPC 形式が無効です
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Invalid vpc format: The VPC identifier in the condition key value is not valid. Use the prefix 'vpc-' followed by 8 or 17 alphanumeric characters.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The VPC identifier in the condition key value is not valid. Use the prefix 'vpc-' followed by 8 or 17 alphanumeric characters."
エラーの解決
aws:SourceVpc
条件キーにはプレフィックスとして vpc-
を使用し、続けて 8 文字または 17 文字の英数字を使用する必要があります。例えば、vpc-11223344556677889
または vpc-12345678
のようになります。
関連用語
エラー — VPCE 形式が無効です
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Invalid vpce format: The VPCE identifier in the condition key value is not valid. Use the prefix 'vpce-' followed by 8 or 17 alphanumeric characters.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The VPCE identifier in the condition key value is not valid. Use the prefix 'vpce-' followed by 8 or 17 alphanumeric characters."
エラーの解決
aws:SourceVpce
条件キーにはプレフィックスとして vpce-
を使用し、続けて 8 文字または 17 文字の英数字を使用する必要があります。例えば、vpce-11223344556677889
または vpce-12345678
のようになります。
関連用語
エラー — フェデレーティッドプリンシパルはサポートされていません
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Federated principal not supported: The policy type does not support a federated identity provider in the principal element. Use a supported principal.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The policy type does not support a federated identity provider in the principal element. Use a supported principal."
エラーの解決
Principal
エレメントは、IAM ロールに添付された信頼ポリシーにはフェデレーティッドプリンシパルを使用し、ID フェデレーションを通じてアクセスを提供します。ID ポリシー、およびその他のリソースベースのポリシーは、Principal
エレメントでフェデレーティッド ID プロバイダーをサポートしていません。例えば、Amazon S3 バケットポリシーでは、SAML プリンシパルを使用できません。Principal
エレメントを、サポートされているプリンシパルタイプに変更します。
関連用語
エラー — 条件キーでサポートされていないアクション
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Unsupported action for condition key: The following actions: {{actions}} are not supported by the condition key {{key}}. The condition will not be evaluated for these actions. We recommend that you move these actions to a different statement without this condition key.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The following actions: {{actions}} are not supported by the condition key {{key}}. The condition will not be evaluated for these actions. We recommend that you move these actions to a different statement without this condition key."
エラーの解決
ポリシーステートメントの Condition
エレメントにある条件キーが、Action
エレメントのそれぞれのアクションに適用されていることを確認してください。指定したアクションが、ポリシーによってしっかりと許可または拒否されるようにするには、サポートされないアクションを、条件キーが含まれない別のステートメントに移動する必要があります。
注記
このエラーのために、Action
エレメントにワイルドカード付きのアクションがある場合は、IAM Access Analyzer がこれらのアクションを評価しません。
関連用語
エラー — ポリシーでサポートされていないアクション
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Unsupported action in policy: The action {{action}} is not supported for the resource-based policy attached to the resource type {{resourceType}}.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The action {{action}} is not supported for the resource-based policy attached to the resource type {{resourceType}}."
エラーの解決
一部のアクションは、異なるリソースタイプに添付された、リソースベースのポリシーの Action
エレメントではサポートされていません。例えば、 AWS Key Management Service アクションは、Amazon S3 バケットのポリシーではサポートされていません。リソースベースのポリシーに添付のリソースタイプでサポートされているアクションを指定してください。
関連用語
エラー — ポリシーでサポートされていないリソース ARN
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Unsupported resource ARN in policy: The resource ARN is not supported for the resource-based policy attached to the resource type {{resourceType}}.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The resource ARN is not supported for the resource-based policy attached to the resource type {{resourceType}}."
エラーの解決
ポリシーが異なるリソースタイプに添付されている場合、一部のリソース ARN は、リソースベースのポリシーの Resource
エレメントではサポートされていません。例えば、 AWS KMS ARN は Amazon S3 バケットの Resource
ポリシーではサポートされていません。リソースベースのポリシーに添付のリソースタイプでサポートされているリソース ARN を指定してください。
関連用語
エラー — サービスプリンシパルでサポートされていない条件キー
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Unsupported condition key for service principal: The following condition keys are not supported when used with the service principal: {{conditionKeys}}.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The following condition keys are not supported when used with the service principal: {{conditionKeys}}."
エラーの解決
サービスの識別子であるサービスプリンシパルを使用して、リソースベースのポリシーの AWS のサービス エレメントで Principal
を指定できます。一部の条件キーは、特定のサービスプリンシパルでは使用できません。例えば、サービスプリンシパル cloudfront.amazonaws.com
では、aws:PrincipalOrgID
条件キーは使用できません。Principal
エレメントのサービスプリンシパルに適用されない条件キーは、削除する必要があります。
関連用語
エラー — ロール信頼ポリシー構文エラー notprincipal
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Role trust policy syntax error notprincipal: Role trust policies do not support NotPrincipal. Update the policy to use a Principal element instead.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Role trust policies do not support NotPrincipal. Update the policy to use a Principal element instead."
エラーの解決
ロール信頼ポリシーは、IAM ロールにアタッチされているリソースベースのポリシーです。信頼ポリシーでは、ロールを引き受けることができるプリンシパルエンティティ (アカウント、ユーザー、ロール、フェデレーティッドユーザー) を定義します。ロール信頼ポリシーは、NotPrincipal
をサポートしていません。ポリシーを更新して、代わりに Principal
要素を使用します。
関連用語
エラー - ロール信頼ポリシーはプリンシパルでワイルドカードをサポートしていません
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Role trust policy unsupported wildcard in principal: "Principal:" "*" is not supported in the principal element of a role trust policy. Replace the wildcard with a valid principal value.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": ""Principal:" "*" is not supported in the principal element of a role trust policy. Replace the wildcard with a valid principal value."
エラーの解決
ロール信頼ポリシーは、IAM ロールにアタッチされているリソースベースのポリシーです。信頼ポリシーは、ロールを引き受けることができるプリンシパルエンティティ (アカウント、ユーザー、ロール、フェデレーティッドユーザー) を定義します。"Principal:" "*"
は、ロール信頼ポリシーの Principal
要素ではサポートされていません。ワイルドカードを有効なプリンシパル値に置き換えてください。
関連用語
エラー — ロール信頼ポリシー構文エラー リソース
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Role trust policy syntax error resource: Role trust policies apply to the role that they are attached to. You cannot specify a resource. Remove the Resource or NotResource element.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Role trust policies apply to the role that they are attached to. You cannot specify a resource. Remove the Resource or NotResource element."
エラーの解決
ロール信頼ポリシーは、IAM ロールにアタッチされているリソースベースのポリシーです。信頼ポリシーでは、ロールを引き受けることができるプリンシパルエンティティ (アカウント、ユーザー、ロール、フェデレーティッドユーザー) を定義します。ロール信頼ポリシーは、アタッチされているロールに適用されます。ロール信頼ポリシーで、Resource
または NotResource
要素を指定することはできません。Resource
または NotResource
要素を削除します。
エラー – IP 範囲のタイプが一致しません
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Type mismatch IP range: The condition operator {{operator}} is used with an invalid IP range value. Specify the IP range in standard CIDR format.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The condition operator {{operator}} is used with an invalid IP range value. Specify the IP range in standard CIDR format."
エラーの解決
CIDR 形式の IP アドレス条件演算子のデータタイプを使用するようにテキストを更新します。
関連用語
エラー — 条件キーのアクションがありません
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Missing action for condition key: The {{actionName}} action must be in the action block to allow setting values for the condition key {{keyName}}. Add {{actionName}} to the action block.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The {{actionName}} action must be in the action block to allow setting values for the condition key {{keyName}}. Add {{actionName}} to the action block."
エラーの解決
ポリシーステートメントの Condition
要素の条件キーは、指定されたアクションが Action
要素内にない限り、評価されません。指定した条件キーが、ポリシーによってしっかりと許可または拒否されるようにするには、Action
要素にアクションを追加します。
関連用語
エラー — ロール信頼ポリシー内のフェデレーションプリンシパル構文が無効です
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Invalid federated principal syntax in role trust policy: The principal value specifies a federated principal that does not match the expected format. Update the federated principal to a domain name or a SAML metadata ARN.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The principal value specifies a federated principal that does not match the expected format. Update the federated principal to a domain name or a SAML metadata ARN."
エラーの解決
プリンシパル値はが、期待される形式と一致しないフェデレーションプリンシパルを指定しています。フェデレーションプリンシパルの形式を有効なドメイン名または SAML メタデータ ARN に更新します。
関連用語
エラー — プリンシパルのアクションが一致しません
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Mismatched action for principal: The {{actionName}} action is invalid with the following principal(s): {{principalNames}}. Use a SAML provider principal with the sts:AssumeRoleWithSAML action or use an OIDC provider principal with the sts:AssumeRoleWithWebIdentity action. Ensure the provider is Federated if you use either of the two options.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The {{actionName}} action is invalid with the following principal(s): {{principalNames}}. Use a SAML provider principal with the sts:AssumeRoleWithSAML action or use an OIDC provider principal with the sts:AssumeRoleWithWebIdentity action. Ensure the provider is Federated if you use either of the two options."
エラーの解決
ポリシーステートメントの Action
要素で指定されたアクションが、Principal
要素で指定されたプリンシパルで無効です。例えば、SAML プロバイダーのプリンシパルを sts:AssumeRoleWithWebIdentity
アクションで使用することはできません。sts:AssumeRoleWithSAML
アクションで SAML プロバイダー プリンシパルを使用するか、sts:AssumeRoleWithWebIdentity
アクションで OIDC プロバイダー プリンシパルを使用する必要があります。
関連用語
エラー — ロールエニウェア信頼ポリシーのアクションが見つかりません
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Missing action for roles anywhere trust policy: The rolesanywhere.amazonaws.com service principal requires the sts:AssumeRole, sts:SetSourceIdentity, and sts:TagSession permissions to assume a role. Add the missing permissions to the policy.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The rolesanywhere.amazonaws.com service principal requires the sts:AssumeRole, sts:SetSourceIdentity, and sts:TagSession permissions to assume a role. Add the missing permissions to the policy."
エラーの解決
IAM Roles Anywhere がロールを引き受けて一時的に AWS 認証情報を配信できるようにするには、ロールが IAM Roles Anywhere のサービスプリンシパルを信頼する必要があります。IAM Roles Anywhere のサービスプリンシパルに sts:AssumeRole
、sts:SetSourceIdentity
、およびロールを引き受けるための sts:TagSession
許可が必要です。いずれかの許可が見つからない場合、ポリシーに追加する必要があります。
関連用語
一般的な警告 — NotResource で SLR を作成する
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Create SLR with NotResource: Using the iam:CreateServiceLinkedRole action with NotResource can allow creation of unintended service-linked roles for multiple resources. We recommend that you specify resource ARNs instead.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Using the iam:CreateServiceLinkedRole action with NotResource can allow creation of unintended service-linked roles for multiple resources. We recommend that you specify resource ARNs instead."
一般的な警告の解決
アクション iam:CreateServiceLinkedRole
は AWS のサービスがユーザーに代わってアクションを実行できるようにする IAM ロールを作成する許可を付与します。ポリシーで iam:CreateServiceLinkedRole
要素を使用して NotResource
を使用すると、複数のリソースに対して意図しないサービスリンクロールを作成できる可能性があります。 代わりに、AWS では、Resource
要素で許可されたARNを指定することをお勧めします。
一般的な警告 — スターインアクションで NotResource の SLR を作成する
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Create SLR with star in action and NotResource: Using an action with a wildcard(*) and NotResource can allow creation of unintended service-linked roles because it can allow iam:CreateServiceLinkedRole permissions on multiple resources. We recommend that you specify resource ARNs instead.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Using an action with a wildcard(*) and NotResource can allow creation of unintended service-linked roles because it can allow iam:CreateServiceLinkedRole permissions on multiple resources. We recommend that you specify resource ARNs instead."
一般的な警告の解決
アクション iam:CreateServiceLinkedRole
は AWS のサービスがユーザーに代わってアクションを実行できるようにする IAM ロールを作成する許可を付与します。Action
にワイルドカード (*) が含まれ、NotResource
要素を含むポリシーにより、複数のリソースに対して意図しないサービスリンクロールを作成できる場合があります。AWSでは、 代わりに Resource
要素で許可された ARN を指定することをお勧めします。
一般的な警告 — NotAction および NotResource を使用した SLR の作成
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Create SLR with NotAction and NotResource: Using NotAction with NotResource can allow creation of unintended service-linked roles because it allows iam:CreateServiceLinkedRole permissions on multiple resources. We recommend that you specify resource ARNs instead.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Using NotAction with NotResource can allow creation of unintended service-linked roles because it allows iam:CreateServiceLinkedRole permissions on multiple resources. We recommend that you specify resource ARNs instead."
一般的な警告の解決
アクション iam:CreateServiceLinkedRole
は AWS のサービスがユーザーに代わってアクションを実行できるようにする IAM ロールを作成する許可を付与します。NotAction
要素を NotResource
要素とともに使用すると、複数のリソースに対して意図しないサービスリンクロールを作成できる可能性があります。AWS では、代わりに iam:CreateServiceLinkedRole
要素の ARN の限定リストで Resource
を許可するようにポリシーを書き直すことをお勧めします。iam:CreateServiceLinkedRole
要素に NotAction
を追加することもできます。
一般的な警告 — リソースにスター付き SLR を作成する
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Create SLR with star in resource: Using the iam:CreateServiceLinkedRole action with wildcards (*) in the resource can allow creation of unintended service-linked roles. We recommend that you specify resource ARNs instead.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Using the iam:CreateServiceLinkedRole action with wildcards (*) in the resource can allow creation of unintended service-linked roles. We recommend that you specify resource ARNs instead."
一般的な警告の解決
アクション iam:CreateServiceLinkedRole
は AWS のサービスがユーザーに代わってアクションを実行できるようにする IAM ロールを作成する許可を付与します。iam:CreateServiceLinkedRole
要素にワイルドカード (*) を使用してポリシーで Resource
を使用すると、複数のリソースに対して意図しないサービスリンクロールを作成できる可能性があります。AWSでは、 代わりに Resource
要素で許可されたARNを指定することをお勧めします。
AWSこの一般的な警告を伴う管理ポリシー
AWS 管理ポリシーを使用すると、一般的な AWS のユースケースに基づいてアクセス許可を割り当てることにより、AWS の使用を開始できます。
これらのユースケースには、アカウント内のパワーユーザー向けのものが含まれています。次の AWS 管理ポリシーは、パワーユーザーアクセスを提供し、任意のAWS サービスのサービスリンクロールを作成するためのアクセス許可を付与します。AWSでは、パワーユーザーと見なす IAM ID にのみ、次の AWS 管理対象ポリシーをアタッチすることをお勧めします。
AWSOrganizationsServiceTrustPolicy
– この AWS 管理ポリシーは、AWS Organizations サービスにリンクされたロールで使用するための許可を提供します。このロールを使用すると、Organizationsは、AWS 組織内の他のサービスに対してサービスにリンクされた追加のロールを作成できます。
一般的な警告 — アクションとリソースにスター付き SLR を作成する
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Create SLR with star in action and resource: Using wildcards (*) in the action and the resource can allow creation of unintended service-linked roles because it allows iam:CreateServiceLinkedRole permissions on all resources. We recommend that you specify resource ARNs instead.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Using wildcards (*) in the action and the resource can allow creation of unintended service-linked roles because it allows iam:CreateServiceLinkedRole permissions on all resources. We recommend that you specify resource ARNs instead."
一般的な警告の解決
アクション iam:CreateServiceLinkedRole
は AWS のサービスがユーザーに代わってアクションを実行できるようにする IAM ロールを作成する許可を付与します。Action
要素とResource
要素にワイルドカード (*) が含まれるポリシーでは、複数のリソースに対して意図しないサービスリンクロールを作成できます。これにより"Action": "*"
、"Action": "iam:*"
、"Action": "iam:Create*"
、またはを指定したときにサービスにリンクされたロールを作成できます。AWS では、代わりに Resource
要素で許可されたARNを指定することをお勧めします。
AWSこの一般的な警告を伴う管理ポリシー
AWS 管理ポリシーを使用すると、一般的な AWS のユースケースに基づいてアクセス許可を割り当てることにより、AWS の使用を開始できます。
これらのユースケースの中には、アカウント内の管理者向けのものがあります。次の AWS 管理ポリシーは、管理者アクセスを提供し、任意の AWS サービスのサービスリンクロールを作成するためのアクセス許可を付与します。AWS では、次の AWS 管理ポリシーを、管理者と見なす IAM ID にのみアタッチすることをお勧めします。
一般的な警告 — リソースにスターがあり、NotAction で SLR を作成する
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Create SLR with star in resource and NotAction: Using a resource with wildcards (*) and NotAction can allow creation of unintended service-linked roles because it allows iam:CreateServiceLinkedRole permissions on all resources. We recommend that you specify resource ARNs instead.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Using a resource with wildcards (*) and NotAction can allow creation of unintended service-linked roles because it allows iam:CreateServiceLinkedRole permissions on all resources. We recommend that you specify resource ARNs instead."
一般的な警告の解決
アクション iam:CreateServiceLinkedRole
は AWS のサービスがユーザーに代わってアクションを実行できるようにする IAM ロールを作成する許可を付与します。ポリシーで NotAction
要素を使用し、Resource
要素にワイルドカード (*) を使用すると、複数のリソースに対して意図しないサービスリンクロールを作成できるようになります。AWS では、代わりに Resource
要素で許可された ARN を指定することをお勧めします。iam:CreateServiceLinkedRole
要素に NotAction
を追加することもできます。
一般的な警告 — 非推奨のグローバル条件キー
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Deprecated global condition key: We recommend that you update aws:ARN to use the newer condition key aws:PrincipalArn.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "We recommend that you update aws:ARN to use the newer condition key aws:PrincipalArn."
一般的な警告の解決
ポリシーには、非推奨のグローバル条件キーが含まれています。条件キーと値のペアの条件キーを更新して、サポートされているグローバル条件キーを使用します。
一般的な警告 - 無効な日付値
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Invalid date value: The date {{date}} might not resolve as expected. We recommend that you use the YYYY-MM-DD format.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The date {{date}} might not resolve as expected. We recommend that you use the YYYY-MM-DD format."
一般的な警告の解決
Unix エポック時間は、1970 年 1 月 1 日から経過した時点からうるう秒を引いた時点を記述します。エポック時間は、予想される正確な時間に解決されない場合があります。AWS では、日付と時刻の書式に W3C 標準を使用することをお勧めします。たとえば、YYYY-MM-DD (1997-07-16) のように完全な日付を指定したり、YYYY-MM-DDThh:mm:ssTZD (1997-07-16T19:20:30+01:00) のように 2 番目の日付に時刻を追加することもできます。
一般的な警告 - 無効なロールリファレンス
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Invalid role reference: The Principal element includes the IAM role ID {{roleid}}. We recommend that you use a role ARN instead.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The Principal element includes the IAM role ID {{roleid}}. We recommend that you use a role ARN instead."
一般的な警告の解決
AWSでは、IAM ロールには、プリンシパル ID ではなく Amazon リソースネーム (ARN) を指定することをお勧めします。IAM がポリシーを保存すると、ARN が既存のロールのプリンシパル ID に変換されます。AWS には、安全上の注意事項が含まれています。ロールを削除して再作成すると、そのロールには新しい ID が割り当てられ、ポリシーは新しいロールの ID と一致しません。
一般的な警告 — 無効なユーザーリファレンス
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Invalid user reference: The Principal element includes the IAM user ID {{userid}}. We recommend that you use a user ARN instead.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The Principal element includes the IAM user ID {{userid}}. We recommend that you use a user ARN instead."
一般的な警告の解決
AWSでは、IAM ユーザーに対して、プリンシパルIDではなく Amazon リソースネーム (ARN) を指定することをお勧めします。IAM がポリシーを保存すると、ARN が既存のユーザーのプリンシパル ID に変換されます。AWS には、安全上の注意事項が含まれています。誰かがユーザーを削除して再作成すると、そのユーザーには新しい ID が割り当てられ、ポリシーは新しいユーザーの ID と一致しません。
一般的な警告-バージョンがありません
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Missing version: We recommend that you specify the Version element to help you with debugging permission issues.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "We recommend that you specify the Version element to help you with debugging permission issues."
一般的な警告の解決
AWS ではポリシーにオプションの Version
パラメータを含めることをお勧めします。Version 要素を含めない場合、デフォルト値は 2012-10-17
ですが、ポリシー変数などの新しい機能はポリシーでは機能しません。たとえば、${aws:username}
などの変数は変数として認識されず、代わりにポリシー内のリテラル文字列として扱われます。
一般的な警告 — 固有の Sid を推奨
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Unique Sids recommended: We recommend that you use statement IDs that are unique to your policy. Update the Sid value.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "We recommend that you use statement IDs that are unique to your policy. Update the Sid value."
一般的な警告の解決
AWS では、一意のステートメント ID を使用することをお勧めします。Sid
(ステートメントID) 要素を使用すると、ポリシーステートメントに指定するオプションの識別子を入力できます。SID
要素を使用して、ステートメント配列内の各ステートメントにステートメントID値を割り当てることができます。
関連用語
一般的な警告 – 演算子のようなもののないワイルドカード
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Wildcard without like operator: Your condition value includes a * or ? character. If you meant to use a wildcard (*, ?), update the condition operator to include Like.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Your condition value includes a * or ? character. If you meant to use a wildcard (*, ?), update the condition operator to include Like."
一般的な警告の解決
Condition
要素構造では、条件演算子とキーと値のペアを使用する必要があります。ワイルドカード (*、?) を使用する条件値を指定する場合は、Like
バージョンの条件演算子を使用する必要があります。たとえば、StringEquals
文字列条件演算子の代わりに、StringLike
を使用します。
"Condition": {"StringLike": {"aws:PrincipalTag/job-category": "admin-*"}}
AWSこの一般的な警告を伴う管理ポリシー
AWS 管理ポリシーを使用すると、一般的な AWS ユースケースに基づいてアクセス許可を割り当てることにより、AWS の使用を開始できます。
次の AWS 管理ポリシーでは、パターンマッチング用の Like
を含む条件演算子を使用せずに、条件値にワイルドカードが含まれています。AWS 管理ポリシーを参照として使用して顧客管理ポリシーを作成する場合、AWS では、StringLike
などのワイルドカード (*、?) とのパターンマッチングをサポートする条件演算子を使用することをお勧めします。
一般的な警告 — ポリシーのサイズが ID ポリシーのクォータを超えています
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Policy size exceeds identity policy quota: The {{policySize}} characters in the identity policy, excluding whitespace, exceed the {{policySizeQuota}} character maximum for inline and managed policies. We recommend that you use multiple granular policies.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The {{policySize}} characters in the identity policy, excluding whitespace, exceed the {{policySizeQuota}} character maximum for inline and managed policies. We recommend that you use multiple granular policies."
一般的な警告の解決
最大 10 のマネージド型ポリシーを IAM ID (ユーザー、ユーザーのグループ、ロール) にアタッチできます。ただし、各管理ポリシーのサイズは、デフォルトのクォータである 6,144 文字を超えることはできません。IAM では、このクォータに対するポリシーのサイズを計算する際にスペースはカウントしません。AWS のクォータ (制限とも呼ばれます) は、AWS アカウントのリソース、アクション、および制限の最大値です。
さらに、IAM アイデンティティに必要な数のインラインポリシーを追加できます。ただし、アイデンティティごとのすべてのインラインポリシーの合計サイズは、指定されたクォータを超えることはできません。
ポリシーがクォータより大きい場合は、ポリシーを複数のステートメントに整理し、ステートメントを複数のポリシーにグループ化できます。
関連用語
AWSこの一般的な警告を伴う管理ポリシー
AWS 管理ポリシーを使用すると、一般的な AWS のユースケースに基づいてアクセス許可を割り当てることにより、AWS の使用を開始できます。
次の AWS 管理ポリシーは、多くの AWS サービスにわたるアクションにアクセス許可を付与し、最大ポリシーサイズを超えています。管理ポリシーを作成するための参照として AWS 管理ポリシーを使用する場合は、ポリシーを複数のポリシーに分割する必要があります。
一般的な警告 — ポリシーのサイズが リソースポリシーのクォータを超えています
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Policy size exceeds resource policy quota: The {{policySize}} characters in the resource policy exceed the {{policySizeQuota}} character maximum for resource policies. We recommend that you use multiple granular policies.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The {{policySize}} characters in the resource policy exceed the {{policySizeQuota}} character maximum for resource policies. We recommend that you use multiple granular policies."
一般的な警告の解決
リソースベースのポリシーは、Amazon S3 バケットなどのリソースにアタッチする JSON ポリシードキュメントです。これらのポリシーでは、そのリソースに対して特定のアクションを実行するために指定されたプリンシパルのアクセス許可を付与するとともに、このアクセス許可が適用される条件を定義します。リソースベースのポリシーのサイズは、そのリソースに設定されたクォータを超えることができません。AWS のクォータ (制限とも呼ばれます) は、AWS アカウントのリソース、アクション、および制限の最大値です。
ポリシーがクォータより大きい場合は、ポリシーを複数のステートメントに整理し、ステートメントを複数のポリシーにグループ化できます。
関連用語
一般的な警告-タイプの不一致
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Type mismatch: Use the operator type {{allowed}} instead of operator {{operator}} for the condition key {{key}}.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Use the operator type {{allowed}} instead of operator {{operator}} for the condition key {{key}}."
一般的な警告の解決
サポートされている条件演算子データ型を使用するようにテキストを更新します。
たとえば、aws:MultiFactorAuthPresent
グローバル条件キーには、Boolean
データ型の条件演算子が必要です。日付または整数を指定すると、データ型が一致しません。
関連用語
一般的な警告 — 型の不一致ブール値
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Type mismatch Boolean: Add a valid Boolean value (true or false) for the condition operator {{operator}}.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Add a valid Boolean value (true or false) for the condition operator {{operator}}."
一般的な警告の解決
true
または false
などのブール条件演算子データ型を使用するようにテキストを更新します。
たとえば、aws:MultiFactorAuthPresent
グローバル条件キーには、Boolean
データ型の条件演算子が必要です。日付または整数を指定すると、データ型が一致しません。
関連用語
一般的な警告-タイプが一致しない日付
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Type mismatch date: The date condition operator is used with an invalid value. Specify a valid date using YYYY-MM-DD or other ISO 8601 date/time format.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The date condition operator is used with an invalid value. Specify a valid date using YYYY-MM-DD or other ISO 8601 date/time format."
一般的な警告の解決
YYYY-MM-DD
または他のISO8601 日時形式で、日付条件演算子のデータ型を使用するようにテキストを更新します。
関連用語
一般的な警告 - タイプ不一致番号
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Type mismatch number: Add a valid numeric value for the condition operator {{operator}}.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Add a valid numeric value for the condition operator {{operator}}."
一般的な警告の解決
数値条件演算子のデータ型を使用するようにテキストを更新します。
関連用語
一般的な警告-型が一致しない文字列
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Type mismatch string: Add a valid base64-encoded string value for the condition operator {{operator}}.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Add a valid base64-encoded string value for the condition operator {{operator}}."
一般的な警告の解決
文字列条件演算子のデータ型を使用するようにテキストを更新します。
関連用語
一般的な警告 — 特定の github リポジトリとブランチを推奨
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Specific github repo and branch recommended: Using a wildcard (*) in token.actions.githubusercontent.com:sub can allow requests from more sources than you intended. Specify the value of token.actions.githubusercontent.com:sub with the repository and branch name.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Using a wildcard (*) in token.actions.githubusercontent.com:sub can allow requests from more sources than you intended. Specify the value of token.actions.githubusercontent.com:sub with the repository and branch name."
一般的な警告の解決
GitHub を OIDC IdP として使用する場合、ベストプラクティスは、IAM IdP に関連付けられたロールを引き受けることができるエンティティを制限することです。ロール信頼ポリシーに Condition
ステートメントを含めると、ロールを特定の GitHub Organization、リポジトリ、またはブランチに制限できます。条件キー token.actions.githubusercontent.com:sub
を使用してアクセスを制限できます。条件を特定のリポジトリまたはブランチのセットに制限することをお勧めします。token.actions.githubusercontent.com:sub
でワイルドカード (*
) を使用する場合、管理外の Organization またはリポジトリの GitHub Actions は、AWS アカウントで GitHub IAM IdP に関連付けられたロールを引き受けることができます。
関連用語
一般的な警告 — ポリシーのサイズが信頼ポリシーのクォータを超えています
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Policy size exceeds role trust policy quota: The characters in the role trust policy, excluding whitespace, exceed the character maximum. We recommend that you request a role trust policy length quota increase using Service Quotas and AWS Support Center. If the quotas have already been increased, then you can ignore this warning.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The characters in the role trust policy, excluding whitespace, exceed the character maximum. We recommend that you request a role trust policy length quota increase using Service Quotas and AWS Support Center. If the quotas have already been increased, then you can ignore this warning."
一般的な警告の解決
IAM と AWS STS に、ロール信頼ポリシーのサイズを制限するクォータがあります。ロール信頼ポリシー内の文字数 (空白を除く) が最大文字数を超えています。Service Quotas と AWS Support Center Console を使用して、ロール信頼ポリシーの長さのクォータの増加をリクエストすることをお勧めします。
関連用語
セキュリティ警告 — NotPrincipal で許可する
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Allow with NotPrincipal: Using Allow with NotPrincipal can be overly permissive. We recommend that you use Principal instead.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Using Allow with NotPrincipal can be overly permissive. We recommend that you use Principal instead."
セキュリティ警告を解決する
"Effect": "Allow"
で NotPrincipal
を使用することは過度に許容される可能性があります たとえば、これにより匿名プリンシパルにアクセス許可を付与できます。AWS では、Principal
要素を使用してアクセスする必要があるプリンシパルを指定することをお勧めします。または、広範なアクセスを許可し、NotPrincipal
および要素 “Effect”: “Deny”
使用して別のステートメントを追加することもできます。
セキュリティ警告 - 単一の値キーを持つ ForAllValues
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
ForAllValues with single valued key: Using ForAllValues qualifier with the single-valued condition key {{key}} can be overly permissive. We recommend that you remove ForAllValues:.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Using ForAllValues qualifier with the single-valued condition key {{key}} can be overly permissive. We recommend that you remove ForAllValues:."
セキュリティ警告を解決する
AWS では、複数値の条件でのみ ForAllValues
を使用することをお勧めします。ForAllValues
集合演算子は、リクエストセットのすべてのメンバーの値が条件キーセットのサブセットであるかどうかをテストします。リクエストのすべてのキーバリューがポリシーの 1 つ以上の値と一致する場合、条件は true を返します。また、リクエストにキーがない場合、またはキーバリューが空の文字列などの null データセットに解決される場合は true を返します。
条件が 単一の値または複数の値をサポートしているかどうかを確認するには、サービスのアクション、リソース、および条件キーのページをご確認ださい。ArrayOf
データタイプのプレフィックスを持つ条件キーは、複数の値を持つ条件キーです。例えば、Amazon SES は単一の値 (String
) を持つキーと、複数の値を持つ ArrayOfString
のデータタイプをサポートしています。
セキュリティ警告 — NotResource でロールを渡す
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Pass role with NotResource: Using the iam:PassRole action with NotResource can be overly permissive because it can allow iam:PassRole permissions on multiple resources. We recommend that you specify resource ARNs instead.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Using the iam:PassRole action with NotResource can be overly permissive because it can allow iam:PassRole permissions on multiple resources. We recommend that you specify resource ARNs instead."
セキュリティ警告を解決する
多くの AWS サービスを設定するには、そのサービスに IAM ロールを渡す必要があります。これを許可するには、ID (ユーザー、ユーザーのグループ、またはロール) に iam:PassRole
アクセス許可を付与する必要があります。ポリシーで iam:PassRole
要素を使用して NotResource
を使用すると、プリンシパルが意図したよりも多くのサービスまたは機能にアクセスできるようになります。AWS では、代わりに、Resource
要素で許可されたARNを指定することをお勧めします。さらに、iam:PassedToService
条件キーを使用して、単一のサービスへのアクセス許可を減らすことができます。
セキュリティ警告 — スター付きアクションで NotResource でロールを渡す
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Pass role with star in action and NotResource: Using an action with a wildcard (*) and NotResource can be overly permissive because it can allow iam:PassRole permissions on multiple resources. We recommend that you specify resource ARNs instead.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Using an action with a wildcard (*) and NotResource can be overly permissive because it can allow iam:PassRole permissions on multiple resources. We recommend that you specify resource ARNs instead."
セキュリティ警告を解決する
多くの AWS サービスを設定するには、そのサービスに IAM ロールを渡す必要があります。これを許可するには、iam:PassRole
アクセス許可をアイデンティティ (ユーザー、ユーザーのグループ、ロール) に送信するには、アクセス許可が必要です。Action
にワイルドカード (*) があり、NotResource
要素を含むポリシーにより、プリンシパルが意図したよりも多くのサービスまたは機能にアクセスできるようになります。AWS では、代わりに Resource
要素で許可されたARNを指定することをお勧めします。さらに、iam:PassedToService
条件キーを使用して、単一のサービスへのアクセス許可を減らすことができます。
セキュリティ警告 — NotAction および NotResource でロールを渡す
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Pass role with NotAction and NotResource: Using NotAction with NotResource can be overly permissive because it can allow iam:PassRole permissions on multiple resources.. We recommend that you specify resource ARNs instead.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Using NotAction with NotResource can be overly permissive because it can allow iam:PassRole permissions on multiple resources.. We recommend that you specify resource ARNs instead."
セキュリティ警告を解決する
多くの AWS サービスを設定するには、そのサービスに IAM ロールを渡す必要があります。これを許可するには、iam:PassRole
アクセス許可をアイデンティティ (ユーザー、ユーザーのグループ、ロール) に送信するには、アクセス許可が必要です。NotAction
要素を使用し、NotResource
要素にいくつかのリソースをリストすると、プリンシパルが意図したよりも多くのサービスまたは機能にアクセスできるようになります。AWS では、代わりに、Resource
要素で許可されたARNを指定することをお勧めします。さらに、iam:PassedToService
条件キーを使用して、単一のサービスへのアクセス許可を減らすことができます。
セキュリティ警告 — リソースにスターでロールを渡す
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Pass role with star in resource: Using the iam:PassRole action with wildcards (*) in the resource can be overly permissive because it allows iam:PassRole permissions on multiple resources. We recommend that you specify resource ARNs or add the iam:PassedToService condition key to your statement.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Using the iam:PassRole action with wildcards (*) in the resource can be overly permissive because it allows iam:PassRole permissions on multiple resources. We recommend that you specify resource ARNs or add the iam:PassedToService condition key to your statement."
セキュリティ警告を解決する
多くの AWS サービスを設定するには、そのサービスに IAM ロールを渡す必要があります。これを許可するには、ID (ユーザー、ユーザーのグループ、またはロール) にiam:PassRole
アクセス許可を付与する必要があります。iam:PassRole
を許可し、Resource
要素にワイルドカード (*) を含むポリシーにより、プリンシパルが意図したよりも多くのサービスまたは機能にアクセスできるようになります。AWS では、代わりに、Resource
要素で許可された ARN を指定することをお勧めします。さらに、iam:PassedToService
条件キーを使用して、単一のサービスへのアクセス許可を減らすことができます。
一部の AWS サービスには、役割の名前にサービス名前空間が含まれています。このポリシーチェックでは、ポリシーを分析して結果を生成する際に、これらの規則を考慮に入れます。たとえば、次のリソース ARN は結果を生成しない可能性があります。
arn:aws:iam::*:role/Service*
AWSマネージド型ポリシーとこのセキュリティ警告
AWS 管理ポリシーを使用すると、一般的な AWS のユースケースに基づいてアクセス許可を割り当てることにより、AWS の使用を開始できます。
これらのユースケースの 1 つは、アカウント内の管理者向けです。次の AWS 管理ポリシーは、管理者アクセスを提供し、任意の IAM ロールを任意のサービスに渡すためのアクセス許可を付与します。AWSでは、次の AWS 管理対象ポリシーは、管理者と見なすIAMIDにのみアタッチすることをお勧めします。
次の AWS管理ポリシーには、リソースにワイルドカード (*) を使用した iam:PassRole
へのアクセス許可が含まれており、非推奨パス上にあります。これらのポリシーごとに、権限ガイダンスが更新されました。たとえば、新しい AWS マネージド型ポリシーで、ユースケースをサポートします。これらのポリシーの代替案については、各サービス のガイドを参照してください。
AWSElasticBeanstalkFullAccess
AWSElasticBeanstalkService
AWSLambdaFullAccess
AWSLambdareadOnlyアクセス
AWSOpsWorksFullAccess
AWSOPsWorksRole
AWSDataPipelineRole
AmazonDynamoDBFullAccesswithDataPipeline
AmazonElasticMapReduceFullAccess
AmazonDynamoDBFullAccesswithDataPipeline
AmazonEC2ContainerServiceFullAccess
次の AWS 管理ポリシーは、サービスにリンクされたロールにのみアクセス許可を提供します。これにより、 AWS サービスはユーザーに代わってアクションを実行できます。これらのポリシーを IAM ID にアタッチすることはできません。
セキュリティ警告 — スターインアクションとリソースでロールを渡す
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Pass role with star in action and resource: Using wildcards (*) in the action and the resource can be overly permissive because it allows iam:PassRole permissions on all resources. We recommend that you specify resource ARNs or add the iam:PassedToService condition key to your statement.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Using wildcards (*) in the action and the resource can be overly permissive because it allows iam:PassRole permissions on all resources. We recommend that you specify resource ARNs or add the iam:PassedToService condition key to your statement."
セキュリティ警告を解決する
多くの AWS サービスを設定するには、そのサービスに IAM ロールを渡す必要があります。これを許可するには、ID (ユーザー、ユーザーのグループ、またはロール) にiam:PassRole
アクセス許可を付与する必要があります。Action
要素と Resource
要素にワイルドカード (*) が含まれるポリシーでは、プリンシパルが意図したよりも多くのサービスまたは機能にアクセスできるようにすることができます。AWS では、代わりに Resource
要素で許可された ARN を指定することをお勧めします。さらに、iam:PassedToService
条件キーを使用して、単一のサービスへのアクセス許可を減らすことができます。
AWSマネージド型ポリシーとこのセキュリティ警告
AWS 管理ポリシーを使用すると、一般的な AWS のユースケースに基づいてアクセス許可を割り当てることにより、AWS の使用を開始できます。
これらのユースケースの中には、アカウント内の管理者向けのものがあります。次の AWS 管理ポリシーは、管理者アクセスを提供し、任意のIAMロールを任意の AWS サービスに渡すためのアクセス許可を付与します。AWS では、次の管理ポリシーを、AWS 管理者と見なす IAMID にのみアタッチすることをお勧めします。
セキュリティ警告 — リソースにスターと NotAction でロールを渡す
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Pass role with star in resource and NotAction: Using a resource with wildcards (*) and NotAction can be overly permissive because it allows iam:PassRole permissions on all resources. We recommend that you specify resource ARNs or add the iam:PassedToService condition key to your statement.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Using a resource with wildcards (*) and NotAction can be overly permissive because it allows iam:PassRole permissions on all resources. We recommend that you specify resource ARNs or add the iam:PassedToService condition key to your statement."
セキュリティ警告を解決する
多くの AWS サービスを設定するには、そのサービスに IAM ロールを渡す必要があります。これを許可するには、ID (ユーザー、ユーザーのグループ、またはロール) にiam:PassRole
アクセス許可を付与する必要があります。ポリシーで NotAction
要素を使用し、Resource
要素にワイルドカード (*) を使用すると、プリンシパルが意図したよりも多くのサービスまたは機能にアクセスできるようになります。AWS では、代わりに Resource
要素で許可されたARNを指定することをお勧めします。さらに、iam:PassedToService
条件キーを使用して、単一のサービスへのアクセス許可を減らすことができます。
セキュリティ警告 — ペアリングされた条件キーがありません
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Missing paired condition keys: Using the condition key {{conditionKeyName}} can be overly permissive without also using the following condition keys: {{recommendedKeys}}. Condition keys like this one are more secure when paired with a related key. We recommend that you add the related condition keys to the same condition block.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Using the condition key {{conditionKeyName}} can be overly permissive without also using the following condition keys: {{recommendedKeys}}. Condition keys like this one are more secure when paired with a related key. We recommend that you add the related condition keys to the same condition block."
セキュリティ警告を解決する
一部の条件キーは、他の関連する条件キーと組み合わせると、より安全になります。AWSでは、関連する条件キーを既存の条件キーと同じ条件ブロックに含めることをお勧めします。これにより、ポリシーを通じて付与されるアクセス許可がより安全になります。
たとえば、aws:VpcSourceIp
条件キーを使用して、要求が行われたIPアドレスをポリシーで指定したIPアドレスと比較できます。 AWS では、関連する aws:SourceVPC
条件キーを追加することをお勧めします。これは、リクエストがポリシーで指定した VPC と指定した IP アドレス からのものであるかどうかをチェックします。
関連用語
セキュリティ警告 — サービスに対してサポートされていないタグ条件キーで拒否
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Deny with unsupported tag condition key for service: Using the effect Deny with the tag condition key {{conditionKeyName}} and actions for services with the following prefixes can be overly permissive: {{serviceNames}}. Actions for the listed services are not denied by this statement. We recommend that you move these actions to a different statement without this condition key.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Using the effect Deny with the tag condition key {{conditionKeyName}} and actions for services with the following prefixes can be overly permissive: {{serviceNames}}. Actions for the listed services are not denied by this statement. We recommend that you move these actions to a different statement without this condition key."
セキュリティ警告を解決する
ポリシーの Condition
要素でサポートされていないタグ条件キーを "Effect": "Deny"
とともに使用すると、そのサービスでは条件が無視されるため、過度に許容される可能性があります。 AWS では、条件キーをサポートしないサービスアクションを削除し、それらのアクションの特定のリソースへのアクセスを拒否する別のステートメントを作成することをお勧めします。
aws:ResourceTag
条件キーを使用していて、サービスアクションでサポートされていない場合、そのキーは要求コンテキストに含まれません。この場合、Deny
ステートメントの条件は常に false
を返し、アクションが拒否されることはありません。これは、リソースが正しくタグ付けされている場合でも発生します。
サービスが aws:ResourceTag
条件キーをサポートしている場合、タグを使用してそのサービスのリソースへのアクセスを制御できます。これは、属性ベースのアクセス制御 (ABAC) と呼ばれます。これらのキーをサポートしないサービスでは、リソースベースのアクセス制御 (RBAC) を使用してリソースへのアクセスを制御する必要があります。
注記
一部のサービスでは、リソースとアクションのサブセットの aws:ResourceTag
条件キーのサポートが許可されています。IAM Access Analyzer は、サポートされていないサービスアクションの結果を返します。たとえば、Amazon S3はそのリソースのサブセットに対して aws:ResourceTag
をサポートしています。aws:ResourceTag
条件キーをサポートする Amazon S3 で利用可能なすべてのリソースタイプを表示するには、「サービス認可リファレンス」の「Amazon S3 で定義されるリソースタイプ」を参照してください。
たとえば、キーと値のペア status=Confidential
でタグ付けされた特定のリソースのタグ付け解除へのアクセスを拒否するとします。また、AWS Lambda ではリソースのタグ付けとタグ付け解除が可能ですが、aws:ResourceTag
条件キーはサポートされていないと仮定します。このタグが存在する場合に AWS App Mesh および AWS Backup の削除アクションを拒否するには、aws:ResourceTag
条件キーを使用します。Lambda の場合は、"Confidential"
プレフィックスを含むリソース命名規則を使用します。次に、その命名規則でリソースの削除を防止する別のステートメントを含めます。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenyDeleteSupported",
"Effect": "Deny",
"Action": [
"appmesh:DeleteMesh",
"backup:DeleteBackupPlan"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/status
": "Confidential
"
}
}
},
{
"Sid": "DenyDeleteUnsupported",
"Effect": "Deny",
"Action": "lambda:DeleteFunction",
"Resource": "arn:aws:lambda:*
:123456789012
:function:status-Confidential*
"
}
]
}
警告
この結果の回避策として、条件演算子の…IfExists バージョンを使用しないでください。これは、キーがリクエストコンテキストに存在し、値が一致する場合、アクションを拒否することを意味します。それ以外の場合は、アクションを拒否します。前の例では、lambda:DeleteFunction
演算子を使用して DenyDeleteSupported
ステートメントに StringEqualsIfExists
アクションを含めると、常にアクションが拒否されます。そのアクションでは、キーはコンテキストに存在せず、リソースがタグ付けされているかどうかにかかわらず、そのリソースタイプを削除しようとするすべての試みは拒否されます。
関連用語
セキュリティ警告 — サービスに対してサポートされていないタグ条件キーで NotAction を拒否する
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Deny NotAction with unsupported tag condition key for service: Using the effect Deny with NotAction and the tag condition key {{conditionKeyName}} can be overly permissive because some service actions are not denied by this statement. This is because the condition key doesn't apply to some service actions. We recommend that you use Action instead of NotAction.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Using the effect Deny with NotAction and the tag condition key {{conditionKeyName}} can be overly permissive because some service actions are not denied by this statement. This is because the condition key doesn't apply to some service actions. We recommend that you use Action instead of NotAction."
セキュリティ警告を解決する
ポリシーの Condition
要素で要素 NotAction
および"Effect": "Deny"
を使用してタグ条件キーを使用すると、過度に許容される可能性があります。条件キーをサポートしていないサービスアクションでは、条件は無視されます。AWS では、ロジックを書き換えてアクションのリストを拒否することをお勧めします。
aws:ResourceTag
条件キーを NotAction
とともに使用する場合、キーをサポートしない新規または既存のサービスアクションは拒否されません。AWS は、拒否するアクションを明示的にリストすることをお勧めします。IAM Access Analyzer は、aws:ResourceTag
条件キーをサポートしないリストされたアクションに対して個別の結果を返します。詳細については、「セキュリティ警告 — サービスに対してサポートされていないタグ条件キーで拒否」を参照してください。
サービスが aws:ResourceTag
条件キーをサポートしている場合、タグを使用してそのサービスのリソースへのアクセスを制御できます。これは、属性ベースのアクセス制御 (ABAC) と呼ばれます。これらのキーをサポートしないサービスでは、リソースベースのアクセス制御 (RBAC) を使用してリソースへのアクセスを制御する必要があります。
関連用語
セキュリティ警告 — サービスプリンシパルへのアクセスを制限する
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Restrict access to service principal: Granting access to a service principal without specifying a source is overly permissive. Use aws:SourceArn, aws:SourceAccount, aws:SourceOrgID, or aws:SourceOrgPaths condition key to grant fine-grained access.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Granting access to a service principal without specifying a source is overly permissive. Use aws:SourceArn, aws:SourceAccount, aws:SourceOrgID, or aws:SourceOrgPaths condition key to grant fine-grained access."
セキュリティ警告を解決する
サービスの識別子であるサービスプリンシパルを使用して、リソースベースのポリシーの Principal
エレメントで AWS のサービス を指定できます。あなたの代わりに実行できるアクセス権をサービスプリンシパルに付与する場合は、アクセス権を制限してください。aws:SourceArn
、aws:SourceAccount
、aws:SourceOrgID
または aws:SourceOrgPaths
などの条件キーを使い、特定のリソース ARN、AWS アカウント、組織 ID、組織パスなど、特定のソースへのアクセスを制限することで、ポリシーに対し過剰にアクセス許可が付与されないようにすることができます。アクセスを制限することで、混乱した代理と呼ばれるセキュリティ上の問題を防ぐことができます。
関連用語
セキュリティ警告 — oidc プリンシパルの条件キーがありません
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Missing condition key for oidc principal: Using an Open ID Connect principal without a condition can be overly permissive. Add condition keys with a prefix that matches your federated OIDC principals to ensure that only the intended identity provider assumes the role.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Using an Open ID Connect principal without a condition can be overly permissive. Add condition keys with a prefix that matches your federated OIDC principals to ensure that only the intended identity provider assumes the role."
セキュリティ警告を解決する
Open ID Connect プリンシパルを条件なしで使用すると、過度に許容されることがあります。フェデレーション OIDC プリンシパルと一致するプレフィックスを含む条件キーを追加して、対象の ID プロバイダーのみがロールを引き受けるようにします。
関連用語
セキュリティ警告 — github リポジトリの条件キーがありません
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Missing github repo condition key: Granting a federated GitHub principal permissions without a condition key can allow more sources to assume the role than you intended. Add the token.actions.githubusercontent.com:sub condition key and specify the branch and repository name in the value.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Granting a federated GitHub principal permissions without a condition key can allow more sources to assume the role than you intended. Add the token.actions.githubusercontent.com:sub condition key and specify the branch and repository name in the value."
セキュリティ警告を解決する
GitHub を OIDC IdP として使用する場合、ベストプラクティスは、IAM IdP に関連付けられたロールを引き受けることができるエンティティを制限することです。ロール信頼ポリシーに Condition
ステートメントを含めると、ロールを特定の GitHub Organization、リポジトリ、またはブランチに制限できます。条件キー token.actions.githubusercontent.com:sub
を使用してアクセスを制限できます。条件を特定のリポジトリまたはブランチのセットに制限することをお勧めします。この条件を含めない場合、管理外の Organization またはリポジトリの GitHub Actions は、AWS アカウントで GitHub IAM IdP に関連付けられたロールを引き受けることができます。
関連用語
提案 - 空の配列アクション
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Empty array action: This statement includes no actions and does not affect the policy. Specify actions.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "This statement includes no actions and does not affect the policy. Specify actions."
提案の解決
ステートメントには Action
または NotAction
アクションのセットを含む要素を含める必要があります。エレメントが空の場合、ポリシーステートメントはパーミッションを提供しません。Action
要素にアクションを指定します。
提案 - 空の配列条件
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Empty array condition: There are no values for the condition key {{key}} and it does not affect the policy. Specify conditions.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "There are no values for the condition key {{key}} and it does not affect the policy. Specify conditions."
提案の解決
オプションの Condition
要素構造体を使用するには、条件演算子とキーと値のペアを使用する必要があります。条件値が空の場合、条件は true
に設定され、ポリシーステートメントにはアクセス許可がありません。条件値を指定します。
提案 – ForAllValues の空の配列条件
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Empty array condition ForAllValues: The ForAllValues prefix with an empty condition key matches only if the key {{key}} is missing from the request context. To determine if the request context is empty, we recommend that you use the Null condition operator with the value of true instead.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The ForAllValues prefix with an empty condition key matches only if the key {{key}} is missing from the request context. To determine if the request context is empty, we recommend that you use the Null condition operator with the value of true instead."
提案の解決
Condition
要素構造体を使用するには、条件演算子とキーバリューのペアを使用する必要があります。ForAllValues
セット演算子は、要求セットのすべてのメンバーの値が条件キーセットのサブセットであるかどうかをテストします。
空の条件キーで ForAllValues
を使用すると、要求にキーがない場合にのみ条件が一致します。 AWS では、要求コンテキストが空であるかどうかをテストする場合は、代わりに Null
条件演算子を使用することをお勧めします。
提案 - 空の配列条件 ForAnyValue
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Empty array condition ForAnyValue: The ForAnyValue prefix with an empty condition key {{key}} never matches the request context and it does not affect the policy. Specify conditions.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The ForAnyValue prefix with an empty condition key {{key}} never matches the request context and it does not affect the policy. Specify conditions."
提案の解決
Condition
要素構造体を使用するには、条件演算子とキーバリューのペアを使用する必要があります。ForAnyValues
セット演算子は、要求値のセットの少なくとも1つのメンバーが条件キー値のセットの少なくとも1つのメンバーと一致するかどうかをテストします。
空の条件キーで ForAnyValues
を使用すると、条件が一致することはありません。これは、ステートメントがポリシーに影響を与えないことを意味します。AWSでは、条件を書き換えることをお勧めします。
提案 - 空の条件 IfExists
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Empty array condition IfExists: The IfExists suffix with an empty condition key matches only if the key {{key}} is missing from the request context. To determine if the request context is empty, we recommend that you use the Null condition operator with the value of true instead.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The IfExists suffix with an empty condition key matches only if the key {{key}} is missing from the request context. To determine if the request context is empty, we recommend that you use the Null condition operator with the value of true instead."
提案の解決
...IfExists
接尾辞は、条件演算子を編集します。これは、ポリシーキーがリクエストのコンテキストで存在する場合、ポリシーで指定されたとおりにキーを処理することを意味します。キーが存在しない場合、条件要素は true と評価されます。
空の条件キーで ...IfExists
を使用すると、要求にキーがない場合にのみ条件が一致します。AWS では、リクエストコンテキストが空かどうかをテストする場合は、代わりに Null
条件演算子を使用することをお勧めします。
提案 – 空の配列プリンシパル
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Empty array principal: This statement includes no principals and does not affect the policy. Specify principals.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "This statement includes no principals and does not affect the policy. Specify principals."
提案の解決
IAMロールの信頼ポリシーおよびリソースベースのポリシーで Principal
または NotPrincipal
要素を使用する必要があります。リソースベースのポリシーは、リソースに直接埋め込むポリシーです。
ステートメントの Principal
要素ではステートメントがポリシーに影響しません。AWS では、リソースにアクセスできるプリンシパルを指定することをお勧めします。
提案 — 空の配列リソース
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Empty array resource: This statement includes no resources and does not affect the policy. Specify resources.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "This statement includes no resources and does not affect the policy. Specify resources."
提案の解決
ステートメントには、Resource
または NotResource
要素を含める必要があります。
ステートメントの resource 要素に空の配列を指定すると、そのステートメントはポリシーに影響を与えません。AWS では、リソースに Amazon リソースネーム (ARN) を指定することをお勧めします。
提案 — 空のオブジェクト条件
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Empty object condition: This condition block is empty and it does not affect the policy. Specify conditions.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "This condition block is empty and it does not affect the policy. Specify conditions."
提案の解決
Condition
要素構造体を使用するには、条件演算子とキーと値のペアを使用する必要があります。
ステートメントの condition 要素に空のオブジェクトを指定すると、そのステートメントはポリシーに影響を与えません。オプションの要素を削除するか、条件を指定します。
提案 — 空のオブジェクト主体
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Empty object principal: This statement includes no principals and does not affect the policy. Specify principals.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "This statement includes no principals and does not affect the policy. Specify principals."
提案の解決
IAMロールの信頼ポリシーおよびリソースベースのポリシーで Principal
または NotPrincipal
要素を使用する必要があります。リソースベースのポリシーは、リソースに直接埋め込むポリシーです。
ステートメントの Principal
要素ではステートメントがポリシーに影響しません。AWS では、リソースにアクセスできるプリンシパルを指定することをお勧めします。
提案 — 空の Sid 値
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Empty Sid value: Add a value to the empty string in the Sid element.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Add a value to the empty string in the Sid element."
提案の解決
オプションの Sid
(statement ID) 要素を使用すると、ポリシーステートメントに指定する識別子を入力できます。Sid
値は、ステートメント配列内の各ステートメントに割り当てることができます。使用することを選択した場合、Sid
要素では文字列値を指定する必要があります。
関連用語
提案 — IP 範囲の改善
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Improve IP range: The non-zero bits in the IP address after the masked bits are ignored. Replace address with {{addr}}.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The non-zero bits in the IP address after the masked bits are ignored. Replace address with {{addr}}."
提案の解決
IPアドレス条件は、203.0.113.0/24 または 2001:DB8:1234:5678::/64 などの標準的な CIDR 形式である必要があります。マスクされたビットの後にゼロ以外のビットを含めると、条件では考慮されません。AWSでは、メッセージに含まれている新しいアドレスを使用することをお勧めします。
提案 - 修飾子付き NULL
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Null with qualifier: Avoid using the Null condition operator with the ForAllValues or ForAnyValue qualifiers because they always return a true or false respectively.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Avoid using the Null condition operator with the ForAllValues or ForAnyValue qualifiers because they always return a true or false respectively."
提案の解決
Condition
要素では、条件演算子 (等しい、より小さい、など) を使用して、ポリシーの条件をリクエストコンテキストのキーと値と比較する式を作成します。 単一の条件キーに複数の値を含むリクエストの場合は、ForAllValues
または ForAnyValue
の集合演算子を使用する必要があります。
Null
で ForAllValues
条件演算子を使用すると、ステートメントは常に true
を返します。Null
で ForAnyValue
条件演算子を使用すると、ステートメントは常に false
を返します。AWSでは、これらの集合演算子とともに StringLike
条件演算子を使用することをお勧めします。
関連用語
提案 — プライベート IP アドレスのサブセット
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Private IP address subset: The values for condition key aws:SourceIp include a mix of private and public IP addresses. The private addresses will not have the desired effect. aws:SourceIp works only for public IP address ranges. To define permissions for private IP ranges, use aws:VpcSourceIp.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The values for condition key aws:SourceIp include a mix of private and public IP addresses. The private addresses will not have the desired effect. aws:SourceIp works only for public IP address ranges. To define permissions for private IP ranges, use aws:VpcSourceIp."
提案の解決
グローバル条件キーは、aws:SourceIp
パブリック IP アドレス範囲に対してのみ機能します。
Condition
要素にプライベートIPアドレスとパブリックIPアドレスが混在している場合、ステートメントが目的の効果を発揮しない可能性があります。aws:VpcSourceIP
を使用してプライベートIPアドレスを指定できます。
注記
グローバル条件キー aws:VpcSourceIP
では、リクエストが指定された IP アドレスから送信され、VPC エンドポイントを経由する場合にのみキーが一致します。
提案 — プライベート通知アドレスのサブセット
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Private NotIpAddress subset: The values for condition key aws:SourceIp include a mix of private and public IP addresses. The private addresses have no effect. aws:SourceIp works only for public IP address ranges. To define permissions for private IP ranges, use aws:VpcSourceIp.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The values for condition key aws:SourceIp include a mix of private and public IP addresses. The private addresses have no effect. aws:SourceIp works only for public IP address ranges. To define permissions for private IP ranges, use aws:VpcSourceIp."
提案の解決
グローバル条件キーは、aws:SourceIp
パブリック IP アドレス範囲に対してのみ機能します。
Condition
要素に NotIpAddress
条件演算子が含まれ、プライベートIPアドレスとパブリックIPアドレスが混在している場合、ステートメントが目的の効果を発揮しない可能性があります。ポリシーで指定されていないパブリック IP アドレスはすべて一致します。プライベート IP アドレスは一致しません。この効果を実現するには、NotIpAddress
と aws:VpcSourceIP
を併用して、一致しないプライベートIPアドレスを指定します。
提案 — 冗長なアクション
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Redundant action: The {{redundantActionCount}} action(s) are redundant because they provide similar permissions. Update the policy to remove the redundant action such as: {{redundantAction}}.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The {{redundantActionCount}} action(s) are redundant because they provide similar permissions. Update the policy to remove the redundant action such as: {{redundantAction}}."
提案の解決
Action
要素でワイルドカード (*) を使用する場合、冗長なアクセス許可を含めることができます。AWS では、ポリシーを確認し、必要なアクセス許可のみを含めることをお勧めします。これは、冗長なアクションを削除するのに役立ちます。
たとえば、次のアクションには2回の iam:GetCredentialReport
アクションが含まれます。
"Action": [
"iam:Get*",
"iam:List*",
"iam:GetCredentialReport"
],
この例では、Get
または List
で始まるすべての IAM アクションに対してアクセス許可が定義されています。IAM が追加の取得またはリスト操作を追加する場合、このポリシーによって許可されます。これらの読み取り専用アクションをすべて許可することをお勧めします。iam:GetCredentialReport
アクションはすでに iam:Get*
の一部として含まれています。重複したアクセス許可を削除するには、iam:GetCredentialReport
を削除します。
アクションの内容がすべて冗長である場合、このポリシーチェックの結果が表示されます。この例では、要素に iam:*CredentialReport
が含まれている場合、冗長とは見なされません。これには、冗長な iam:GetCredentialReport
とそうでない iam:GenerateCredentialReport
が含まれます。 iam:Get*
または iam:*CredentialReport
のいずれかを削除すると、ポリシーのアクセス許可が変更されます。
この提案を伴うAWS 管理ポリシー
AWS 管理ポリシーを使用すると、一般的な AWS のユースケースに基づいてアクセス許可を割り当てることにより、AWS の使用を開始できます。
冗長アクションは、ポリシーで付与されるアクセス権限には影響しません。顧客管理ポリシーを作成するための参照として AWS 管理ポリシーを使用する場合、AWS では、ポリシーから冗長なアクションを削除することをお勧めします。
提案 — 冗長な条件値 num
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Redundant condition value num: Multiple values in {{operator}} are redundant. Replace with the {{greatest/least}} single value for {{key}}.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Multiple values in {{operator}} are redundant. Replace with the {{greatest/least}} single value for {{key}}."
提案の解決
条件キーで類似の値に数値条件演算子を使用すると、重複を作成して重複する権限を作成できます。
たとえば、次の Condition
要素には、年の重なりが1200秒である複数の aws:MultiFactorAuthAge
条件が含まれています。
"Condition": {
"NumericLessThan": {
"aws:MultiFactorAuthAge": [
"2700",
"3600"
]
}
}
この例では、多要素認証 (MFA) が 3600 秒 (1 時間) 前に完了した場合にアクセス許可が定義されます。冗長な 2700
値を削除できます。
提案 — 冗長リソース
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Redundant resource: The {{redundantResourceCount}} resource ARN(s) are redundant because they reference the same resource. Review the use of wildcards (*)
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The {{redundantResourceCount}} resource ARN(s) are redundant because they reference the same resource. Review the use of wildcards (*)"
提案の解決
Amazon リソースネーム (ARN) でワイルドカード (*) を使用すると、冗長リソースアクセス権限を作成できます。
たとえば、次の Resource
要素には、冗長なアクセス許可を持つ複数の ARN が含まれます。
"Resource": [
"arn:aws:iam::111122223333:role/jane-admin",
"arn:aws:iam::111122223333:role/jane-s3only",
"arn:aws:iam::111122223333:role/jane*"
],
この例では、名前が jane
で始まるすべてのロールに対して権限が定義されています。結果の権限を変更せずに、冗長な jane-admin
および jane-s3only
ARNを削除できます。これにより、ポリシーはダイナミックになります。これは、で始まる将来のロールに対するパーミッションを定義しますjane
。ポリシーの意図が静的数のロールへのアクセスを許可する場合は、最後の ARN を削除し、定義する必要がある ARN のみをリストします。
この提案を伴うAWS 管理ポリシー
AWS 管理ポリシーを使用すると、一般的な AWS のユースケースに基づいてアクセス許可を割り当てることにより、AWS の使用を開始できます。
冗長リソースは、ポリシーで付与されるアクセス許可には影響しません。AWS マネージドポリシーを参照として使用してカスタマーマネージドポリシーを作成する場合、AWS ではポリシーから冗長なリソースを削除することをお勧めします。
提案 — 冗長ステートメント
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Redundant statement: The statements are redundant because they provide identical permissions. Update the policy to remove the redundant statement.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The statements are redundant because they provide identical permissions. Update the policy to remove the redundant statement."
提案の解決
Statement
要素は、ポリシーの主要要素です。この要素は必須です。Statement
要素には、単一のステートメントまたは個々のステートメントの配列を含めることができます。
長いポリシーに同じステートメントを複数回含めると、ステートメントは冗長になります。ポリシーによって付与されるアクセス許可に影響を与えずに、ステートメントの 1 つを削除できます。ポリシーを編集したユーザーは、重複したステートメントを更新せずにステートメントの 1 つを変更することがあります。これにより、意図した権限よりも多くなる可能性があります。
提案 — サービス名のワイルドカード
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Wildcard in service name: Avoid using wildcards (*, ?) in the service name because it might grant unintended access to other AWS services with similar names.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Avoid using wildcards (*, ?) in the service name because it might grant unintended access to other AWS services with similar names."
提案の解決
ポリシーに AWS サービスの名前を含める場合は、AWS では、ワイルドカード (*、?) を含めないことをお勧めします。これにより、意図しない将来のサービスに対するアクセス許可が追加される可能性があります。たとえば、名前に単語 *code*
が含まれている AWS サービスは12以上あります
"Resource": "arn:aws:*code*::111122223333:*"
提案 — サービスに対してサポートされていないタグ条件キーで許可する
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Allow with unsupported tag condition key for service: Using the effect Allow with the tag condition key {{conditionKeyName}} and actions for services with the following prefixes does not affect the policy: {{serviceNames}}. Actions for the listed service are not allowed by this statement. We recommend that you move these actions to a different statement without this condition key.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Using the effect Allow with the tag condition key {{conditionKeyName}} and actions for services with the following prefixes does not affect the policy: {{serviceNames}}. Actions for the listed service are not allowed by this statement. We recommend that you move these actions to a different statement without this condition key."
提案の解決
ポリシーの Condition
要素でサポートされていないタグ条件キーを "Effect": "Allow"
で使用しても、そのサービスアクションでは条件が無視されるため、ポリシーによって付与されるアクセス許可には影響しません。AWS では、条件キーをサポートしていないサービスのアクションを削除し、そのサービス内の特定のリソースへのアクセスを許可する別のステートメントを作成することをお勧めします。
aws:ResourceTag
条件キーを使用していて、サービスアクションでサポートされていない場合、そのキーは要求コンテキストに含まれません。この場合は、Allow
ステートメントは、常に false
に設定され、アクションは決して許可されません。これは、リソースが正しくタグ付けされている場合でも発生します。
サービスが aws:ResourceTag
条件キーをサポートしている場合、タグを使用してそのサービスのリソースへのアクセスを制御できます。これは、属性ベースのアクセス制御 (ABAC) と呼ばれます。これらのキーをサポートしないサービスでは、リソースベースのアクセス制御 (RBAC) を使用してリソースへのアクセスを制御する必要があります。
注記
一部のサービスでは、リソースとアクションのサブセットの aws:ResourceTag
条件キーのサポートが許可されています。IAM Access Analyzer は、サポートされていないサービスアクションの結果を返します。たとえば、Amazon S3はそのリソースのサブセットに対して aws:ResourceTag
をサポートしています。aws:ResourceTag
条件キーをサポートする Amazon S3 で利用可能なすべてのリソースタイプを表示するには、「サービス認可リファレンス」の「Amazon S3 で定義されるリソースタイプ」を参照してください。
たとえば、チームメンバーがキーと値のペア team=BumbleBee
でタグ付けされた特定のリソースの詳細を表示できるようにするとします。また、AWS Lambda でリソースにタグを付けることはできますが、aws:ResourceTag
条件キーをサポートしていないと仮定します。このタグが存在する場合に AWS App Mesh および AWS Backup のビューアクションを許可するには、aws:ResourceTag
条件キーを使用します。Lambda の場合は、チーム名をプレフィックスとして含むリソース命名規則を使用します。その後、その命名規則でリソースを表示することを許可する別のステートメントを含めます。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowViewSupported",
"Effect": "Allow",
"Action": [
"appmesh:DescribeMesh",
"backup:GetBackupPlan"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/team
": "BumbleBee
"
}
}
},
{
"Sid": "AllowViewUnsupported",
"Effect": "Allow",
"Action": "lambda:GetFunction",
"Resource": "arn:aws:lambda:*
:123456789012
:function:team-BumbleBee*
"
}
]
}
警告
この結果の回避策として、Not
バージョンの条件演算子を "Effect": "Allow"
と一緒に使用しないでください。これらの条件演算子は、否定的なマッチングを提供します。これは、条件が評価された後、結果が否定されることを意味します。前の例では、lambda:GetFunction
演算子を使用して AllowViewSupported
ステートメントに StringNotEquals
アクションを含めると、リソースがタグ付けされているかどうかに関係なく、常にアクションが許可されます。
この結果の回避策として、条件演算子の…IfExists バージョンを使用しないでください。これは、キーがリクエストコンテキストに存在し、値が一致する場合、アクションを許可することを意味します。それ以外の場合は、アクションを許可します。前の例では、演算子を使用して AllowViewSupported
ステートメントに lambda:GetFunction
アクションを含めると、常に StringEqualsIfExists
アクションが許可されます。そのアクションでは、キーはコンテキストに存在せず、リソースがタグ付けされているかどうかにかかわらず、そのリソースタイプを表示しようとするすべての試みが許可されます。
関連用語
提案 — サービス用にサポートされていないタグ条件キーで NotAction を許可する
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Allow NotAction with unsupported tag condition key for service: Using the effect Allow with NotAction and the tag condition key {{conditionKeyName}} allows only service actions that support the condition key. The condition key doesn't apply to some service actions. We recommend that you use Action instead of NotAction.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "Using the effect Allow with NotAction and the tag condition key {{conditionKeyName}} allows only service actions that support the condition key. The condition key doesn't apply to some service actions. We recommend that you use Action instead of NotAction."
提案の解決
ポリシーの Condition
要素でサポートされていないタグ条件キーを要素 NotAction
および "Effect": "Allow"
と併用しても、ポリシーによって付与されるアクセス許可には影響しません。条件キーをサポートしていないサービスアクションでは、条件は無視されます。AWS では、アクションのリストを許可するようにロジックを書き直すことを推奨しています。
aws:ResourceTag
条件キーを NotAction
と併用する場合、キーをサポートしない新規または既存のサービスアクションは許可されません。AWS では、許可するアクションを明示的にリストすることをお勧めします。IAM Access Analyzer は、aws:ResourceTag
条件キーをサポートしないリストされたアクションに対して個別の結果を返します。詳細については、「提案 — サービスに対してサポートされていないタグ条件キーで許可する」を参照してください。
サービスが aws:ResourceTag
条件キーをサポートしている場合、タグを使用してそのサービスのリソースへのアクセスを制御できます。これは、属性ベースのアクセス制御 (ABAC) と呼ばれます。これらのキーをサポートしないサービスでは、リソースベースのアクセス制御 (RBAC) を使用してリソースへのアクセスを制御する必要があります。
関連用語
提案 — サービスプリンシパルで推奨される条件キー
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Recommended condition key for service principal: To restrict access to the service principal {{servicePrincipalPrefix}} operating on your behalf, we recommend aws:SourceArn, aws:SourceAccount, aws:SourceOrgID, or aws:SourceOrgPaths instead of {{key}}.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "To restrict access to the service principal {{servicePrincipalPrefix}} operating on your behalf, we recommend aws:SourceArn, aws:SourceAccount, aws:SourceOrgID, or aws:SourceOrgPaths instead of {{key}}."
提案の解決
サービスの識別子であるサービスプリンシパルを使用して、リソースベースのポリシーの Principal
エレメントで AWS のサービス を指定できます。サービスプリンシパルへのアクセスを付与する場合は、aws:Referer
のような条件キーの代わりに、aws:SourceArn
、aws:SourceAccount
、aws:SourceOrgID
、aws:SourceOrgPaths
などの条件キーを使用してください。これにより、混乱した代理と呼ばれるセキュリティ上の問題を防ぐことができます。
関連用語
提案 — ポリシー内の不適切な条件キー
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Irrelevant condition key in policy: The condition key {{condition-key}} is not relevant for the {{resource-type}} policy. Use this key in an identity-based policy to govern access to this resource.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The condition key {{condition-key}} is not relevant for the {{resource-type}} policy. Use this key in an identity-based policy to govern access to this resource."
提案の解決
一部の条件キーは、リソースベースのポリシーに適していない場合があります。例えば、s3:ResourceAccount
条件キーは Amazon S3 バケットや Amazon S3 アクセスポイントのリソースタイプに添付された、リソースベースのポリシーには適していません。
ID ベースのポリシーでは条件キーを使用して、リソースへのアクセスを制御するべきです。
関連用語
提案 — ロール信頼ポリシーにおける冗長なプリンシパル
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Redundant principal in role trust policy: The assumed-role principal {{redundant_principal}} is redundant with its parent role {{parent_role}}. Remove the assumed-role principal.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The assumed-role principal {{redundant_principal}} is redundant with its parent role {{parent_role}}. Remove the assumed-role principal."
提案の解決
ポリシーの Principal
要素で、継承されたロールのプリンシパルとその親の役ロールの両方を指定した場合、異なる許可は許可または拒否されません。例えば、次の形式を使用して Principal
要素を指定すると冗長になります。
"Principal": { "AWS": [ "arn:aws:iam::
AWS-account-ID
:role/rolename
", "arn:aws:iam::AWS-account-ID
:assumed-role/rolename
/rolesessionname
" ]
ロールを引き受けたプリンシパルを削除することをお勧めします。
関連用語
提案 — 対象者のクレームタイプを確認する
AWS Management Console では、このチェックの結果に次のメッセージが表示されます。
Confirm audience claim type: The 'aud' (audience) claim key identifies the recipients that the JSON web token is intended for. Audience claims can be multivalued or single-valued. If the claim is multivalued, use a ForAllValues or ForAnyValue qualifier. If the claim is single-valued, do not use a qualifier.
AWS CLI または AWS API へのプログラムによる呼び出しでは、このチェックの結果に次のメッセージが表示されます。
"findingDetails": "The 'aud' (audience) claim key identifies the recipients that the JSON web token is intended for. Audience claims can be multivalued or single-valued. If the claim is multivalued, use a ForAllValues or ForAnyValue qualifier. If the claim is single-valued, do not use a qualifier."
提案の解決
aud
(対象者) クレーム キーは、アプリを IdP に登録するときに発行されるアプリの一意の識別子であり、JSON ウェブトークンの対象となる受信者を識別します。対象者のクレームは、複数値でも単一値でもかまいません。クレームが複数値の場合は、ForAllValues
または ForAnyValue
条件セット演算子を使用します。クレームが単一値の場合は、条件セット演算子を使用しないでください。
関連用語