AWS Proton Exemplos de políticas de função de serviço do IAM - AWS Proton

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á.

AWS Proton Exemplos de políticas de função de serviço do IAM

Os administradores possuem e gerenciam os recursos AWS Proton criados conforme definido pelos modelos de ambiente e serviço. Eles atribuem funções de serviço do IAM à conta que permitem AWS Proton criar recursos em seu nome. Os administradores fornecem as funções e AWS Key Management Service as chaves do IAM para recursos que, posteriormente, pertencem e são gerenciados pelos desenvolvedores quando AWS Proton implantam seu aplicativo como um AWS Proton serviço em um AWS Proton ambiente. Para obter mais informações AWS KMS e criptografia de dados, consulteProteção de dados no AWS Proton.

Uma função de serviço é uma função da Amazon Web Services (IAM) que permite AWS Proton fazer chamadas para recursos em seu nome. Se você especificar uma função de serviço, o AWS Proton usará as credenciais da função. Use uma função de serviço para especificar explicitamente as ações que AWS Proton podem ser executadas.

Você cria o perfil de serviço e a respectiva política de permissão com o serviço do IAM. Para obter mais informações sobre a criação de uma função de serviço, consulte Criação de uma função para delegar permissões a um AWS serviço no Guia do usuário do IAM.

AWS Proton função de serviço para provisionamento usando AWS CloudFormation

Como membro da equipe da plataforma, você pode, como administrador, criar uma função de AWS Proton serviço e fornecê-la AWS Proton ao criar um ambiente como função de CloudFormation serviço do ambiente (o protonServiceRoleArn parâmetro da ação da CreateEnvironmentAPI). Essa função permite AWS Proton fazer chamadas de API para outros serviços em seu nome quando o ambiente ou qualquer uma das instâncias de serviço em execução nele usa o provisionamento AWS gerenciado e AWS CloudFormation a infraestrutura de provisionamento.

Recomendamos que você use a seguinte função do IAM e a política de confiança para sua função AWS Proton de serviço. Quando você usa o AWS Proton console para criar um ambiente e opta por criar uma nova função, essa é a política que é AWS Proton adicionada à função de serviço que ela cria para você. Ao definir o escopo da permissão nesta política, lembre-se de que ela AWS Proton falha em caso de Access Denied erro.

Importante

Lembre-se de que as políticas mostradas nos exemplos a seguir concedem privilégios de administrador a qualquer pessoa que possa registrar um modelo em sua conta. Como não sabemos quais recursos você definirá em seus AWS Proton modelos, essas políticas têm amplas permissões. Recomendamos que você defina o escopo das permissões para os recursos específicos que serão implantados em seus ambientes.

123456789012Substitua pelo seu Conta da AWS ID.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:CancelUpdateStack", "cloudformation:ContinueUpdateRollback", "cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackDriftDetectionStatus", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResourceDrifts", "cloudformation:DescribeStacks", "cloudformation:DetectStackResourceDrift", "cloudformation:ExecuteChangeSet", "cloudformation:ListChangeSets", "cloudformation:ListStackResources", "cloudformation:UpdateStack" ], "Resource": "arn:aws:cloudformation:*:123456789012:stack/AWSProton-*" }, { "Effect": "Allow", "NotAction": [ "organizations:*", "account:*" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": [ "cloudformation.amazonaws.com" ] } } }, { "Effect": "Allow", "Action": [ "organizations:DescribeOrganization", "account:ListRegions" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": [ "cloudformation.amazonaws.com" ] } } } ] }
{ "Version": "2012-10-17", "Statement": { "Sid": "ServiceTrustRelationshipWithConfusedDeputyPrevention", "Effect": "Allow", "Principal": { "Service": "proton.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws::proton:*:123456789012:environment/*" } } } }

Veja a seguir um exemplo de uma política de função de AWS Proton serviço com escopo reduzido que você pode usar se precisar apenas de AWS Proton serviços para provisionar recursos do S3.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:CancelUpdateStack", "cloudformation:ContinueUpdateRollback", "cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackDriftDetectionStatus", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResourceDrifts", "cloudformation:DescribeStacks", "cloudformation:DetectStackResourceDrift", "cloudformation:ExecuteChangeSet", "cloudformation:ListChangeSets", "cloudformation:ListStackResources", "cloudformation:UpdateStack" ], "Resource": "arn:aws:cloudformation:*:123456789012:stack/AWSProton-*" }, { "Effect": "Allow", "Action": [ "s3:*" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": [ "cloudformation.amazonaws.com" ] } } } ] }

AWS Proton função de serviço para CodeBuild provisionamento

Como membro da equipe da plataforma, você pode, como administrador, criar uma função de AWS Proton serviço e fornecê-la AWS Proton ao criar um ambiente como função de CodeBuild serviço do ambiente (o codebuildRoleArn parâmetro da ação da CreateEnvironmentAPI). Essa função permite AWS Proton fazer chamadas de API para outros serviços em seu nome quando o ambiente ou qualquer uma das instâncias de serviço em execução nele usa o provisionamento para CodeBuild provisionar a infraestrutura.

Quando você usa o AWS Proton console para criar um ambiente e opta por criar uma nova função, AWS Proton adiciona uma política com privilégios de administrador à função de serviço que ela cria para você. Ao criar sua própria função e reduzir o escopo das permissões, lembre-se de que isso AWS Proton falha nos Access Denied erros.

Importante

Esteja ciente de que as políticas AWS Proton associadas às funções que ela cria para você concedem privilégios de administrador a qualquer pessoa que possa registrar um modelo em sua conta. Como não sabemos quais recursos você definirá em seus AWS Proton modelos, essas políticas têm amplas permissões. Recomendamos que você defina o escopo das permissões para os recursos específicos que serão implantados em seus ambientes.

O exemplo a seguir fornece permissões CodeBuild para provisionar recursos usando AWS Cloud Development Kit (AWS CDK) o.

123456789012Substitua pelo seu Conta da AWS ID.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "logs:CreateLogStream", "logs:CreateLogGroup", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:/aws/codebuild/AWSProton- Shell-*", "arn:aws:logs:us-east-1:123456789012:log-group:/aws/codebuild/AWSProton- Shell-*:*" ], "Effect": "Allow" }, { "Action": "proton:NotifyResourceDeploymentStatusChange", "Resource": "arn:aws:proton:us-east-1:123456789012:*", "Effect": "Allow" }, { "Action": "sts:AssumeRole", "Resource": [ "arn:aws:iam::123456789012:role/cdk-*-deploy-role-*", "arn:aws:iam::123456789012:role/cdk-*-file-publishing-role-*" ], "Effect": "Allow" } ] }
{ "Version": "2012-10-17", "Statement": { "Sid": "CodeBuildTrustRelationshipWithConfusedDeputyPrevention", "Effect": "Allow", "Principal": { "Service": "codebuild.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws::proton:*:123456789012:environment/*" } } } }

AWS Proton funções do serviço de pipeline

Para provisionar pipelines de serviços, AWS Proton precisa de permissões para fazer chamadas de API para outros serviços. Os perfis de serviço necessários são semelhantes aos perfis de serviço que você fornece ao criar ambientes. No entanto, as funções para criar pipelines são compartilhadas entre todos os serviços da sua AWS conta, e você fornece essas funções como configurações da conta no console ou por meio da ação da UpdateAccountSettingsAPI.

Quando você usa o AWS Proton console para atualizar as configurações da conta e opta por criar uma nova função para as funções de CodeBuild serviço AWS CloudFormation ou para as funções de serviço, as políticas AWS Proton adicionadas às funções de serviço criadas para você são as mesmas descritas nas seções anteriores Perfil de provisionamento gerenciado pela AWS CodeBuild função de provisionamento e. Ao definir o escopo da permissão nesta política, lembre-se de que ela AWS Proton falha em caso de Access Denied erro.

Importante

Lembre-se de que as políticas exemplificadas nas seções anteriores concedem privilégios de administrador a qualquer pessoa que possa registrar um modelo em sua conta. Como não sabemos quais recursos você definirá em seus AWS Proton modelos, essas políticas têm amplas permissões. Recomendamos que você defina o escopo das permissões para os recursos específicos que serão implantados em seus pipelines.

AWS Proton função do componente

Como membro da equipe da plataforma, você pode, como administrador, criar uma função de AWS Proton serviço e fornecê-la AWS Proton ao criar um ambiente como função de CloudFormation componente do ambiente (o componentRoleArn parâmetro da ação da CreateEnvironmentAPI). Esse perfil abrange a infraestrutura que componentes diretamente definidos podem provisionar. Para obter mais informações sobre componentes, consulte Componentes do AWS Proton.

O exemplo de política a seguir oferece suporte à criação de um componente diretamente definido que provisiona um bucket do Amazon Simple Storage Service (Amazon S3) e uma política de acesso relacionada.

123456789012Substitua pelo seu Conta da AWS ID.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:CancelUpdateStack", "cloudformation:CreateChangeSet", "cloudformation:DeleteChangeSet", "cloudformation:DescribeStacks", "cloudformation:ContinueUpdateRollback", "cloudformation:DetectStackResourceDrift", "cloudformation:DescribeStackResourceDrifts", "cloudformation:DescribeStackEvents", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:UpdateStack", "cloudformation:DescribeChangeSet", "cloudformation:ExecuteChangeSet", "cloudformation:ListChangeSets", "cloudformation:ListStackResources" ], "Resource": "arn:aws:cloudformation:*:123456789012:stack/AWSProton-*" }, { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:DeleteBucket", "s3:GetBucket", "iam:CreatePolicy", "iam:DeletePolicy", "iam:GetPolicy", "iam:ListPolicyVersions", "iam:DeletePolicyVersion" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": "cloudformation.amazonaws.com" } } } ] }
{ "Version": "2012-10-17", "Statement": { "Sid": "ServiceTrustRelationshipWithConfusedDeputyPrevention", "Effect": "Allow", "Principal": { "Service": "proton.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws::proton:*:123456789012:environment/*" } } } }