Controlar AWS acesso e permissões usando políticas

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 3 min. de leitura
  • Configure políticas com o nível necessário de permissões para fornecer acesso aos recursos [ AWS para Descoberta na nuvem e Cloud Provisioning and Governance.

    Antes de Iniciar

    Familiarize-se com a criação de usuários e políticas de usuário do IAM. Consulte a documentação da AWS.

    Identifique o nível de permissões necessárias para descobrir os recursos usando Descoberta na nuvem e gerenciar os recursos com Cloud Provisioning and Governance. Por exemplo:
    • Permissões adicionais do S3 são necessárias, pois AWS usa um bucket do S3 para armazenar e executar os modelos de formação de nuvem para implantar pilhas usando o CloudFormation. Essas permissões são necessárias mesmo se você executar o mesmo modelo do CloudFormation no console AWS.
    • O acesso somente leitura é necessário para fazer a descoberta de padrões por meio da política personalizada.
    AWS O CloudFormation provisiona e configura recursos fazendo chamadas para os serviços AWS que são descritos em seu modelo. Para obter mais informações, consulte Como o CloudFormation funciona?
    Funções necessárias:
    • Administrador do Console de gerenciamento da AWS
    • Para Descoberta na nuvem: admin ou discovery_admin
    • Para Cloud Provisioning and Governance: admin ou sn_cmp.cloud_admin

    Por Que e Quando Desempenhar Esta Tarefa

    A política configurada define as AWS permissões que você pode atribuir a um usuário, grupo ou função. Dependendo dos serviços AWS que você usa, especifique ações para o serviço executar ações de descoberta e provisionamento e de ciclo de vida usando Cloud Provisioning and Governance.

    Procedimento

    1. Faça login no Console de gestão AWS usando as credenciais da conta de serviço relevante.
      Se você usou um usuário ou uma função do IAM para fornecer acesso usando credenciais temporárias, faça login usando o mesmo usuário ou função do IAM.
    2. Abra o registro do usuário na instância do usuário relevante.
    3. Defina uma política de usuário no AWS Management Console usando um dos seguintes métodos:
      • Conceda acesso de administrador à instância. Este método fornece o mesmo nível de acesso que o ID da chave de acesso e a chave de acesso secreta. Anexe a política AdministratorAccess ao perfil do usuário.
        Nota:
        Para criar uma política de usuário que ofereça suporte somente a Descoberta na nuvem em vez do provisionamento de recursos de nuvem, anexe a política ReadOnlyAccess.
      • Crie uma política personalizada com um nome descritivo. No campo Documento de política, grave o código que inclui as APIs que esta política permite executar.
        Nota:
        A amostra de JSON a seguir contém permissões para Descoberta na nuvem.
        {
           "Version":"2012-10-17",
           "Statement":[
              {
                 "Sid":"PermissionsNeededForDiscovery",
                 "Effect":"Allow",
                 "Action":[
                    "account:ListRegions",
                    "apigateway:GET",
                    "application-autoscaling:Describe*",
                    "autoscaling-plans:Describe*",
                    "autoscaling:Describe*",
                    "autoscaling:DescribeAutoScalingGroups",
                    "autoscaling:DescribeLaunchConfigurations",
                    "cloudformation:Describe*",
                    "cloudformation:DescribeStack*",
                    "cloudformation:List*
                    "cloudwatch:Get*",
                    "cloudwatch:List*",
                    "config:ListDiscoveredResources",
                    "dynamodb:Describe*",
                    "dynamodb:DescribeTable",
                    "dynamodb:ListGlobalTables",
                    "dynamodb:ListTables",
                    "ec2:Describe*",
                    "ec2:ReportInstanceStatus",
                    "ecs:Describe*",
                    "ecs:List*",
                    "eks:Describe*",
                    "eks:List*",
                    "elasticache:Describe*",
                    "elasticache:List*",
                    "elasticfilesystem:Describe*",
                    "elasticloadbalancing:Describe*",
                    "lambda:Get*",
                    "lambda:List*",
                    "organizations:Describe*",
                    "organizations:DescribeOrganization",
                    "organizations:List*",
                    "rds:Describe*",
                    "redshift:Describe*",
                    "route53:GetHostedZone",
                    "route53:List*",
                    "s3:GetAccountPublicAccessBlock",
                    "s3:GetBucket*",
                    "s3:GetBucketLocation",
                    "s3:List*",
                    "sdb:GetAttributes",
                    "sns:GetEndpointAttributes",
                    "sns:GetSubscriptionAttributes",
                    "sns:List*",
                    "sns:ListPlatformApplications",
                    "sns:ListSubscriptions",
                    "sns:ListSubscriptionsByTopic",
                    "sns:ListTopics",
                 ],
                 "Resource":"*"
              }
           ]
        }
      • O exemplo de JSON a seguir contém permissões para Descoberta na nuvem e Cloud Provisioning and Governance
        {
            "Version": "2012-10-17",
            "Statement": [
                {
                    "Sid": "PermissionsNeededForCPG",
                    "Effect": "Allow",
                    "Action": [
                        "account:ListRegions",
                        "apigateway:GET",
                        "application-autoscaling:Describe*",
                        "autoscaling-plans:Describe*",
                        "autoscaling:Describe*",
                        "autoscaling:DescribeAutoScalingGroups",
                        "autoscaling:DescribeLaunchConfigurations",
                        "cloudformation:Describe*",
                        "cloudformation:DescribeStack*",
                        "cloudwatch:Get*",
                        "cloudwatch:List*",
                        "config:ListDiscoveredResources"
                        "dynamodb:Describe*",
                        "dynamodb:DescribeTable",
                        "dynamodb:ListGlobalTables",
                        "dynamodb:ListTables",
                        "ec2:Describe*",
                        "ec2:ReportInstanceStatus",
                        "ecs:Describe*",
                        "ecs:List*",
                        "eks:Describe*",
                        "eks:List*",
                        "elasticache:Describe*",
                        "elasticache:List*",
                        "elasticfilesystem:Describe*",
                        "elasticloadbalancing:Describe*",
                        "lambda:Get*",
                        "lambda:List*",
                        "organizations:Describe*",
                        "organizations:DescribeOrganization",
                        "organizations:List*",
                        "rds:Describe*",
                        "redshift:Describe*",
                        "route53:GetHostedZone",
                        "route53:List*",
                        "s3:GetAccountPublicAccessBlock",
                        "s3:GetBucket*",
                        "s3:GetBucketLocation",
                        "s3:List*",
                        "sdb:GetAttributes",
                        "sns:GetEndpointAttributes",
                        "sns:GetSubscriptionAttributes",
                        "sns:List*",
                        "sns:ListPlatformApplications",
                        "sns:ListSubscriptions",
                        "sns:ListSubscriptionsByTopic",
                        "sns:ListTopics",
                    ],
                    "Resource": "*"
                },
                {
                    "Sid": "MinimalPermissionsNeededForEc2ProvisioningThroughCloudFormation",
                    "Effect": "Allow",
                    "Action": [
                        "cloudformation:CreateStack",
                        "cloudformation:CreateUploadBucket",
                        "cloudformation:DeleteStack",
                        "cloudformation:DescribeStackEvents",
                        "cloudformation:DescribeStackResources",
                        "cloudformation:DescribeStacks",
                        "cloudformation:GetTemplate",
                        "cloudformation:GetTemplateSummary",
                        "cloudformation:List*",
                        "cloudformation:UpdateStack",
                        "cloudformation:ValidateTemplate"
                        "ec2:*",
                        "s3:CreateBucket",
                        "s3:DeleteBucket",
                        "s3:DeleteObject",
                        "s3:GetObject",
                        "s3:ListBucket",
                        "s3:PutObject",
                    ],
                    "Resource": "*"
                }
            ]
        }