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 funções e políticas do IAM necessárias para gerenciar os recursos do seu projeto. As políticas se encaixam em três categorias:

  • Políticas do IAM para membros da equipe do projeto.

  • Políticas do IAM para funções de operador.

  • Políticas do IAM para uma função de execução em tempo de execução.

Políticas do IAM para membros de equipe

Ao criar um projeto, AWS CodeStar cria três políticas gerenciadas pelo cliente para acesso de proprietário, colaborador e espectador ao projeto. Todos os AWS CodeStar projetos contêm políticas do IAM 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 gerenciada do IAM com um nome padrão, em que 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ê desejar adicionar ou alterar permissões, anexe políticas adicionais ao usuário do IAM.

À medida que você adiciona membros da equipe (usuários do IAM) ao projeto e escolhe seus níveis de acesso, a política correspondente é anexada ao usuário do IAM, concedendo ao usuário o conjunto de permissões apropriado para atuar em recursos do projeto. Na maioria das circunstâncias, você não precisa anexar ou gerenciar diretamente políticas ou permissões no IAM. Não é recomendável anexar manualmente uma política de nível de AWS CodeStar acesso a um usuário do IAM. 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 usuário do IAM.

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 usuário do IAM com essa política pode realizar todas as AWS CodeStar ações no projeto, mas, diferentemente de um usuário do IAM 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.

Políticas do IAM para funções de operador

Se você criar seu AWS CodeStar projeto após o PDT de 6 de dezembro de 2018, a AWS CodeStar criará duas funções de trabalhador, CodeStar-project-id-ToolChain e. CodeStar-project-id-CloudFormation Um papel de trabalhador é um papel do IAM específico do projeto que é AWS CodeStar criado para ser passado 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 2018 PDT).

A função de CloudFormation trabalhador inclui permissões para recursos selecionados suportados por AWS CloudFormation, bem como permissões para criar usuários, funções e políticas do IAM em sua pilha de aplicativos. Também tem uma relação de confiança estabelecida com AWS CloudFormation. Para reduzir 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 entidade do IAM (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 CodeStar projetos da AWS criados antes de 6 de dezembro de 2018, o PDT AWS CodeStar cria funções de trabalhadores individuais para recursos da cadeia de ferramentas CodePipeline, como CodeBuild, e CloudWatch Eventos, e também cria uma função de trabalhador AWS CloudFormation que dá suporte a 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.

Política do IAM para a função de execução

Para projetos criados após o PDT de 6 de dezembro de 2018, a 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 funções adicionais do IAM, 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 ter mais informações, consulte Adicionar uma função do IAM a um projeto.

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

Limite de permissões do IAM

Depois do PDT de 6 de dezembro de 2018, quando você cria um projeto, a AWS CodeStar cria uma política gerenciada pelo cliente e atribui essa política como limite de permissões do IAM às funções do IAM no projeto. A AWS CodeStar exige que todas as entidades do IAM 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 do usuário do IAM.

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

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

Adicionar um limite de permissões do IAM a projetos existentes

Se você tem um CodeStar projeto da AWS que foi criado antes do PDT de 6 de dezembro de 2018, você deve adicionar manualmente um limite de permissão às funções do IAM 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 CodeStar gerenciadas pela AWS 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 permissões adicionais do IAM para atualizar a pilha no console do AWS CloudFormation .

  4. (Opcional) Para criar perfis do IAM específicas ao aplicativo, execute esta etapa. No console do IAM, atualize a política embutida anexada à AWS CloudFormation função do seu projeto para incluir o seguinte trecho. Talvez você precise recursos adicionais do IAM 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 seu projeto para que a AWS CodeStar atualize o limite de permissões com as permissões apropriadas.

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