View a markdown version of this page

Adicionar Confused Deputy ao seu mecanismo de provisionamento do Terraform - AWS Service Catalog

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Adicionar Confused Deputy ao seu mecanismo de provisionamento do Terraform

Chaves de contexto Confused Deputy nos endpoints para restringir o acesso às operações lambda:Invoke

A função Lambda do analisador de parâmetros criada AWS Service Catalog por mecanismos fornecidos tem uma política de acesso que concede permissão lambda:Invoke entre contas somente ao responsável pelo serviço: AWS Service Catalog

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" } ] }

Essa deve ser a única permissão necessária para que AWS Service Catalog a integração funcione corretamente. No entanto, você pode restringir isso ainda mais usando a chave de contexto aws:SourceAccount Confused Deputy. Ao AWS Service Catalog enviar mensagens para essas filas, AWS Service Catalog preenche a chave com o ID da conta de aprovisionamento. Isso é útil quando você pretende distribuir produtos por meio do compartilhamento de portfólio e quer garantir que somente contas específicas estejam usando seu mecanismo.

Por exemplo, você pode restringir seu mecanismo para permitir somente solicitações originadas de 000000000000 e 111111111111 usando a condição mostrada abaixo:

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" ] } } } ] }

Chaves de contexto Confused Deputy nos endpoints para restringir o acesso às operações sqs:SendMessage

As filas de entrada da operação de provisionamento do Amazon SQS criadas AWS Service Catalog por mecanismos fornecidos têm uma política de acesso que concede permissões sqs:SendMessage entre contas (e KMS associadas) somente ao responsável pelo serviço: AWS Service Catalog

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" } ] }

Essa deve ser a única permissão necessária para que AWS Service Catalog a integração funcione corretamente. No entanto, você pode restringir isso ainda mais usando a chave de contexto aws:SourceAccount Confused Deputy. Ao AWS Service Catalog enviar mensagens para essas filas, AWS Service Catalog preenche as chaves com o ID da conta de aprovisionamento. Isso é útil quando você pretende distribuir produtos por meio do compartilhamento de portfólio e quer garantir que somente contas específicas estejam usando seu mecanismo.

Por exemplo, você pode restringir seu mecanismo para permitir somente solicitações originadas de 000000000000 e 111111111111 usando a condição mostrada abaixo:

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" } ] }