View a markdown version of this page

Confused Deputy を Terraform プロビジョニングエンジンに追加する - AWS Service Catalog

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

Confused Deputy を Terraform プロビジョニングエンジンに追加する

lambda:Invoke 操作のためのアクセスを制限するための、エンドポイントの Confused Deputy コンテキストキー

AWS Service Catalogが提供するエンジンによって作成されたパラメータパーサー Lambda 関数には、 AWS Service Catalog サービスプリンシパルにのみクロスアカウントlambda:Invokeアクセス許可を付与するアクセスポリシーがあります。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "servicecatalog.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-east-1:111122223333:function:ServiceCatalogTerraformOSParameterParser" } ] }

これは、 との統合が正しく AWS Service Catalog 機能するために必要な唯一のアクセス許可である必要があります。ただし、aws:SourceAccount Confused Deputy コンテキストキーを使用すると、これをさらに制限できます。 AWS Service Catalog がこれらのキューにメッセージを送信すると、 はプロビジョニングアカウントの ID をキーに AWS Service Catalog 入力します。これは、ポートフォリオ共有を通じて製品を配布する予定で、特定のアカウントだけがエンジンを使用できるようにしたい場合に役立ちます。

たとえば、以下の条件を使用して、000000000000 と 111111111111 を起点とするリクエストのみを許可するよう、エンジンに制限をかけることができます。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "servicecatalog.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-east-1:111122223333:function:ServiceCatalogTerraformOSParameterParser", "Condition": { "StringLike": { "aws:SourceAccount": [ "000000000000", "111111111111" ] } } } ] }

sqs:SendMessage 操作のためのアクセスを制限するための、エンドポイントの Confused Deputy コンテキストキー

プロビジョニングオペレーションの取り込み AWS Service Catalogが提供するエンジンによって作成された Amazon SQS キューには、 AWS Service Catalog サービスプリンシパルにのみクロスアカウント sqs:SendMessage (および関連する KMS) アクセス許可を付与するアクセスポリシーがあります。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "Enable AWS Service Catalog to send messages to the queue", "Effect": "Allow", "Principal": { "Service": "servicecatalog.amazonaws.com" }, "Action": "sqs:SendMessage", "Resource": [ "arn:aws:sqs:us-east-1:111122223333:ServiceCatalogTerraformOSProvisionOperationQueue" ] }, { "Sid": "Enable AWS Service Catalog encryption/decryption permissions when sending message to queue", "Effect": "Allow", "Principal": { "Service": "servicecatalog.amazonaws.com" }, "Action": [ "kms:DescribeKey", "kms:Decrypt", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/key_id" } ] }

これは、 との統合が正しく AWS Service Catalog 機能するために必要な唯一のアクセス許可である必要があります。ただし、aws:SourceAccount Confused Deputy コンテキストキーを使用すると、これをさらに制限できます。 AWS Service Catalog がこれらのキューにメッセージを送信すると、 はプロビジョニングアカウントの ID をキーに AWS Service Catalog 入力します。これは、ポートフォリオ共有を通じて製品を配布する予定で、特定のアカウントだけがエンジンを使用できるようにしたい場合に役立ちます。

たとえば、以下の条件を使用して、000000000000 と 111111111111 を起点とするリクエストのみを許可するよう、エンジンに制限をかけることができます。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "Enable AWS Service Catalog to send messages to the queue", "Effect": "Allow", "Principal": { "Service": "servicecatalog.amazonaws.com" }, "Action": "sqs:SendMessage", "Resource": [ "arn:aws:sqs:us-east-1:111122223333:ServiceCatalogTerraformOSProvisionOperationQueue" ], "Condition": { "StringLike": { "aws:SourceAccount": [ "000000000000", "111111111111" ] } } }, { "Sid": "Enable AWS Service Catalog encryption/decryption permissions when sending message to queue", "Effect": "Allow", "Principal": { "Service": "servicecatalog.amazonaws.com" }, "Action": [ "kms:DescribeKey", "kms:Decrypt", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/key_id" } ] }