リソースコントロールポリシーの例 - AWS Organizations

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

リソースコントロールポリシーの例

このトピックで表示されているサービスコントロールポリシー (SCP) の例は、情報提供のみを目的としています。データ境界の例については、GitHub のデータ境界ポリシーの例を参照してください。

これらの例を使用する前に

組織内でこれらの RCP の例を使用する前に、以下のことを実行します。

  • お客様の固有要件に応じて RCP を慎重にレビューし、カスタマイズします。

  • 使用する AWS サービスを使用して、環境内の RCPs を徹底的にテストします。

このセクションのポリシーの例では、RCP の実装と使用について説明します。これらの例は、公式な AWS 推奨事項やベストプラクティスとして解釈されることを意図したものではありません。ポリシーが、お客様の環境のビジネス要件を解決するために適切であるかどうかを慎重にテストする責任はお客様にあります。拒否ベースのリソースコントロールポリシーは、ポリシーに必要な例外を追加しない限り、 AWS サービスの使用を意図せずに制限またはブロックする可能性があります。

一般的な例

RCPFullAWSAccess

次のポリシーは AWS マネージドポリシーであり、リソースコントロールポリシー (RCPs。このポリシーをデタッチすることはできません。このデフォルトの RCP では、すべてのプリンシパルとアクションがリソースにアクセスできます。つまり、RCP の作成とアタッチを開始するまで、既存の IAM アクセス許可はすべてそのまま機能し続けます。このポリシーの効果をテストする必要はありません。既存の認可動作をリソースで継続できるためです。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "*" } ] }

サービス間の混乱した代理保護

一部の AWS のサービス (サービスと呼ばれる) は、プリン AWS のサービス シパルを使用して他の AWS のサービス (サービスと呼ばれる) の AWS リソースにアクセスします。 AWS リソースへのアクセスを意図していないアクターが、プリン AWS のサービス シパルの信頼を使用して、アクセスを意図していないリソースとやり取りしようとすると、サービス間の混乱した代理問題と呼ばれます。詳細については、「IAM ユーザーガイド」の「『混乱した代理』問題」を参照してください。

次のポリシーでは、リソースにアクセスする AWS のサービス プリンシパルは、組織からのリクエストに代わってのみアクセスする必要があります。このポリシーは、aws:SourceAccount が存在するリクエストにのみコントロールを適用するため、aws:SourceAccount の使用を必要としないサービス統合が影響を受けることはありません。aws:SourceAccount がリクエストコンテキストに存在する場合、Null 条件は true と評価され、aws:SourceOrgID キーが強制適用されます。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "EnforceConfusedDeputyProtection", "Effect": "Deny", "Principal": "*", "Action": [ "s3:*", "sqs:*", "kms:*", "secretsmanager:*", "sts:*" ], "Resource": "*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceOrgID": "my-org-id", "aws:SourceAccount": [ "third-party-account-a", "third-party-account-b" ] }, "Bool": { "aws:PrincipalIsAWSService": "true" }, "Null": { "aws:SourceArn": "false" } } } ] }

アクセスをリソースへの HTTPS 接続のみに制限する

次のポリシーは、リソースへのアクセスが、HTTPS (TLS) で暗号化された接続を通じてのみ行われることを要求します。これにより、潜在的な攻撃者によるネットワークトラフィックの操作を防ぐことができます。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "EnforceSecureTransport", "Effect": "Deny", "Principal": "*", "Action": [ "sts:*", "s3:*", "sqs:*", "secretsmanager:*", "kms:*" ], "Resource": "*", "Condition": { "BoolIfExists": { "aws:SecureTransport": "false" } } } ] }

Amazon S3 バケットポリシーの一貫したコントロール

次の RCP には、組織内の Amazon S3 バケットに一貫したアクセスコントロールを適用するための複数のステートメントが含まれています。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "EnforceS3TlsVersion", "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": "*", "Condition": { "NumericLessThan": { "s3:TlsVersion": [ "1.2" ] } } }, { "Sid": "EnforceKMSEncryption", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "*", "Condition": { "Null": { "s3:x-amz-server-side-encryption-aws-kms-key-id": "true" } } } ] }
  • ステートメント ID EnforceS3TlsVersion – S3 バケットにアクセスするには、TLS バージョン 1.2 以上が必要です。

  • ステートメント ID EnforceKMSEncryption – オブジェクトは KMS キーを使用してサーバー側で暗号化する必要があります。