AWS CodeStar Políticas e permissões em nível de projeto - AWS CodeStar

Em 31 de julho de 2024, a Amazon Web Services (AWS) interromperá o suporte para criação e visualização AWS CodeStar de projetos. Depois de 31 de julho de 2024, você não poderá mais acessar o AWS CodeStar console nem criar novos projetos. No entanto, os AWS recursos criados por AWS CodeStar, incluindo seus repositórios de origem, pipelines e compilações, não serão afetados por essa alteração e continuarão funcionando. AWS CodeStar As conexões e AWS CodeStar notificações não serão afetadas por essa descontinuação.

 

Se você deseja monitorar o trabalho, desenvolver código e criar, testar e implantar seus aplicativos, a Amazon CodeCatalyst fornece um processo de introdução simplificado e funcionalidades adicionais para gerenciar seus projetos de software. Saiba mais sobre a funcionalidade e os preços da Amazon CodeCatalyst.

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 CodeStar Políticas e permissões em nível de projeto

Ao criar um projeto, AWS CodeStar cria as IAM funções e políticas necessárias para gerenciar os recursos do projeto. As políticas se encaixam em três categorias:

  • IAMpolíticas para membros da equipe do projeto.

  • IAMpolíticas para funções de trabalhadores.

  • IAMpolíticas para uma função de execução em tempo de execução.

IAMPolíticas para membros da equipe

Ao criar um projeto, AWS CodeStar cria três políticas gerenciadas pelo cliente para acesso do proprietário, do colaborador e do espectador ao projeto. Todos os AWS CodeStar projetos contêm IAM políticas para esses três níveis de acesso. Esses níveis de acesso são específicos do projeto e definidos por uma política IAM gerenciada com um nome padrão, onde project-id é o ID do AWS CodeStar projeto (por exemplo, my-first-projec):

  • CodeStar_project-id_Owner

  • CodeStar_project-id_Contributor

  • CodeStar_project-id_Viewer

Importante

Essas políticas estão sujeitas a alterações por AWS CodeStar. Elas não devem ser editadas manualmente. Se você quiser adicionar ou alterar permissões, anexe políticas adicionais ao IAM usuário.

Conforme você adiciona membros da equipe (IAMusuários) ao projeto e escolhe seus níveis de acesso, a política correspondente é anexada ao IAM usuário, concedendo ao usuário o conjunto apropriado de permissões para agir nos recursos do projeto. Na maioria das circunstâncias, você não precisa anexar ou gerenciar diretamente políticas ou permissões noIAM. Não é recomendável anexar manualmente uma política de nível de AWS CodeStar acesso a um IAM usuário. Se for absolutamente necessário, como complemento de uma política de nível de AWS CodeStar acesso, você pode criar suas próprias políticas gerenciadas ou em linha para aplicar seu próprio nível de permissões a um IAM usuário.

As políticas têm um escopo rígido para recursos do projeto e ações específicas. À medida que novos recursos são adicionados à pilha de infraestrutura, AWS CodeStar tenta atualizar as políticas dos membros da equipe para incluir permissões para acessar o novo recurso, se eles forem um dos tipos de recursos compatíveis.

nota

As políticas para níveis de acesso em um AWS CodeStar projeto se aplicam somente a esse projeto. Isso ajuda a garantir que os usuários só possam ver e interagir com os AWS CodeStar projetos para os quais têm permissões, no nível determinado por sua função. Somente usuários que criam AWS CodeStar projetos devem ter uma política aplicada que permita o acesso a todos os AWS CodeStar recursos, independentemente do projeto.

Todas as políticas de nível de AWS CodeStar acesso variam, dependendo dos AWS recursos associados ao projeto ao qual os níveis de acesso estão associados. Ao contrário de outros serviços da AWS , essas políticas são personalizadas quando o projeto é criado e atualizado à medida que os recursos do projeto mudam. Portanto, não existe uma política gerenciada de proprietário, colaborador ou visualizador canônica.

AWS CodeStar Política de função do proprietário

A política gerenciada pelo CodeStar_project-id_Owner cliente permite que o usuário execute todas as ações no AWS CodeStar projeto sem restrições. Essa é a única política que permite que um usuário adicione ou remova membros da equipe. O conteúdo da política varia, dependendo dos recursos associados ao projeto. Consulte AWS CodeStar Política de função do proprietário para ver um exemplo.

Um IAM usuário com essa política pode realizar todas as AWS CodeStar ações no projeto, mas, diferentemente de um IAM usuário com a AWSCodeStarFullAccess política, o usuário não pode criar projetos. O escopo da codestar:* permissão é limitado a um recurso específico (o AWS CodeStar projeto associado a esse ID do projeto).

AWS CodeStar Política de função do colaborador

A política gerenciada pelo cliente CodeStar_project-id_Contributor permite que um usuário colabore com o projeto e altere o painel do projeto, mas não permite que um usuário adicione ou remova membros da equipe. O conteúdo da política varia, dependendo dos recursos associados ao projeto. Consulte Política da função Colaborador do AWS CodeStar para ver um exemplo.

AWS CodeStar Política de função do espectador

A política gerenciada pelo cliente CodeStar_project-id_Viewer permite que um usuário visualize um projeto no AWS CodeStar, mas não altere seus recursos ou adicione ou remova membros da equipe. O conteúdo da política varia, dependendo dos recursos associados ao projeto. Consulte AWS CodeStar Política de função do espectador para ver um exemplo.

IAMPolíticas para funções de trabalhadores

Se você criar seu AWS CodeStar projeto depois de 6 de dezembro de 2018PDT, AWS CodeStar cria duas funções de trabalhador CodeStar-project-id-ToolChain CodeStar-project-id-CloudFormation e. Uma função de trabalhador é uma IAM função específica do projeto que é AWS CodeStar criada para ser passada para um serviço. Ele concede permissões para que o serviço possa criar recursos e executar ações no contexto do seu AWS CodeStar projeto. A função de trabalhador da cadeia de ferramentas tem uma relação de confiança estabelecida com serviços da cadeia de ferramentas CodeBuild, como CodeDeploy, e. CodePipeline Os membros da equipe do projeto (proprietários e colaboradores) recebem acesso para passar a função de operador para serviços downstream confiáveis. Para obter um exemplo da declaração da política em linha para essa função, consulte AWS CodeStar Política de funções dos trabalhadores da Toolchain (após 6 de dezembro de 2018PDT).

A função de CloudFormation trabalhador inclui permissões para recursos selecionados suportados por AWS CloudFormation, bem como permissões para criar IAM usuários, funções e políticas em sua pilha de aplicativos. Também tem uma relação de confiança estabelecida com AWS CloudFormation. Para mitigar os riscos de escalonamento de privilégios e ações destrutivas, a política de AWS CloudFormation função inclui uma condição que exige o limite de permissões específico do projeto para cada IAM entidade (usuário ou função) criada na pilha de infraestrutura. Para obter um exemplo da declaração da política em linha para essa função, consulte AWS CloudFormation Política de função do trabalhador.

Para AWS CodeStar projetos criados antes de 6 de dezembro de 2018, PDT AWS CodeStar cria funções de trabalhador individuais para recursos do conjunto de ferramentas CodePipeline CodeBuild, como, e CloudWatch Eventos, e também cria uma função de trabalhador AWS CloudFormation que suporta um conjunto limitado de recursos. Cada uma dessas funções tem uma relação de confiança estabelecida com o serviço correspondente. Os membros da equipe do projeto (proprietários e colaboradores) e algumas das outras funções de operador recebem acesso para passar a função para serviços downstream confiáveis. As permissões para as funções de operador são definidas em uma política em linha que é delimitada para um conjunto básico de ações que a função pode executar em um conjunto de recursos do projeto. Essas permissões são estáticas. Elas incluem permissões para recursos incluídos no projeto durante a criação, mas não são atualizadas quando novos recursos são adicionados ao projeto. Para obter exemplos dessas declarações de políticas, consulte.

IAMPolítica para a função de execução

Para projetos criados após 6 de dezembro de 2018PDT, AWS CodeStar cria uma função de execução genérica para o projeto de amostra em sua pilha de aplicativos. A função é limitada aos recursos do projeto usando a política de limite de permissões. À medida que você expande o projeto de amostra, você pode criar IAM funções adicionais, e a política de AWS CloudFormation funções exige que essas funções sejam definidas usando o limite de permissão para evitar o aumento de privilégios. Para obter mais informações, consulte Adicionar uma função do IAM a um projeto.

Para projetos Lambda criados antes de 6 de dezembro de 2018PDT, AWS CodeStar cria uma função de execução do Lambda que tem uma política em linha anexada com permissões para atuar nos recursos na pilha de projetos. AWS SAM À medida que novos recursos são adicionados ao SAM modelo, AWS CodeStar tenta atualizar a política da função de execução do Lambda para incluir permissões para o novo recurso, caso ele seja um dos tipos de recursos compatíveis.

Limite de permissões do IAM

Depois de 6 de dezembro de 2018PDT, quando você cria um projeto, AWS CodeStar cria uma política gerenciada pelo cliente e atribui essa política como limite de IAM permissões para as IAM funções no projeto. AWS CodeStarexige que todas as IAM entidades criadas na pilha de aplicativos tenham um limite de permissões. Um limite de permissões controla as permissões máximas que a função pode ter, mas não fornece a função com nenhuma permissão. As políticas de permissões definem as permissões para a função. Isso significa que, independentemente de quantas permissões extras forem adicionadas a uma função, qualquer pessoa que use a função não poderá executar mais do que as ações incluídas no limite de permissões. Para obter informações sobre como as políticas de permissões e os limites de permissões são avaliados, consulte Lógica de avaliação de políticas no Guia IAM do usuário.

AWS CodeStar usa um limite de permissões específico do projeto para evitar o escalonamento de privilégios para recursos fora do projeto. O limite de AWS CodeStar permissões inclui recursos ARNs do projeto. Para obter um exemplo dessa declaração de política, consulte AWS CodeStar Política de limite de permissões.

A AWS CodeStar transformação atualiza essa política quando você adiciona ou remove um recurso compatível do projeto por meio da pilha de aplicativos (template.yml).

Adicionar um limite de IAM permissões aos projetos existentes

Se você tiver um AWS CodeStar projeto criado antes de 6 de dezembro de 2018PDT, adicione manualmente um limite de permissão às IAM funções no projeto. Como uma melhor prática, recomendamos usar um limite específico ao projeto que inclua apenas recursos no projeto para impedir o escalonamento de privilégios para recursos fora do projeto. Siga estas etapas para usar o limite de permissões AWS CodeStar gerenciadas que é atualizado à medida que o projeto evolui.

  1. Faça login no AWS CloudFormation console e localize o modelo para a pilha do conjunto de ferramentas em seu projeto. Este modelo é chamado awscodestar-project-id.

  2. Escolha o modelo, selecione Actions (Ações) e View/Edit template in Designer (Visualizar/editar modelo no Designer).

  3. Localize a seção Resources e inclua o trecho de código a seguir na parte superior da seção.

    PermissionsBoundaryPolicy: Description: Creating an IAM managed policy for defining the permissions boundary for an AWS CodeStar project Type: AWS::IAM::ManagedPolicy Properties: ManagedPolicyName: !Sub 'CodeStar_${ProjectId }_PermissionsBoundary' Description: 'IAM policy to define the permissions boundary for IAM entities created in an AWS CodeStar project' PolicyDocument: Version: '2012-10-17' Statement: - Sid: '1' Effect: Allow Action: ['*'] Resource: - !Sub 'arn:${AWS::Partition}:cloudformation:${AWS::Region}:${AWS::AccountId}:stack/awscodestar-${ProjectId}-*'

    Talvez você precise de IAM permissões adicionais para atualizar a pilha a partir do AWS CloudFormation console.

  4. (Opcional) Se você quiser criar IAM funções específicas do aplicativo, conclua esta etapa. No IAM console, atualize a política embutida anexada à AWS CloudFormation função do seu projeto para incluir o seguinte trecho. Talvez você precise de IAM recursos adicionais para atualizar a política.

    { "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::{AccountId}:role/CodeStar-{ProjectId}*", "Effect": "Allow" }, { "Action": [ "iam:CreateServiceLinkedRole", "iam:GetRole", "iam:DeleteRole", "iam:DeleteUser" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "iam:AttachRolePolicy", "iam:AttachUserPolicy", "iam:CreateRole", "iam:CreateUser", "iam:DeleteRolePolicy", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:DetachRolePolicy", "iam:PutUserPermissionsBoundary", "iam:PutRolePermissionsBoundary" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PermissionsBoundary": "arn:aws:iam::{AccountId}:policy/CodeStar_{ProjectId}_PermissionsBoundary" } }, "Effect": "Allow" }
  5. Faça uma alteração no pipeline do projeto para que ela AWS CodeStar atualize o limite de permissões com as permissões apropriadas.

Para obter mais informações, consulte Adicionar uma função do IAM a um projeto.