Usar políticas baseadas em identidade (políticas do IAM) para o Amazon Redshift
Este tópico fornece exemplos de políticas baseadas em identidade em que um administrador de conta pode anexar políticas de permissões a identidades do IAM (ou seja, usuários, grupos e funções).
Importante
Recomendamos que você primeiro analise os tópicos introdutórios que explicam os conceitos básicos e as opções disponíveis para você gerenciar o acesso aos seus recursos do Amazon Redshift. Para obter mais informações, consulte Visão geral do gerenciamento de permissões de acesso aos recursos do Amazon Redshift.
A seguir, um exemplo de uma política de permissões. A política permite que um usuário crie, exclua, modifique e reinicialize todos os clusters, depois nega permissão para excluir ou alterar qualquer cluster cujo identificador de cluster comece com production
na Região da AWS us-west-2
e na Conta da AWS 123456789012
.
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowClusterManagement", "Action": [ "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:ModifyCluster", "redshift:RebootCluster" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid":"DenyDeleteModifyProtected", "Action": [ "redshift:DeleteCluster", "redshift:ModifyCluster" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:cluster:production*" ], "Effect": "Deny" } ] }
A política tem duas instruções:
-
A primeira instrução concede permissões para um usuário para criar, excluir, modificar e reinicializar clusters. A instrução especifica um caractere curinga (*) como o valor
Resource
para que a política se aplique a todos os recursos do Amazon Redshift de propriedade da conta da AWS raiz. -
A segunda instrução nega a permissão para excluir ou modificar um cluster. A instrução especifica um nome de recurso da Amazon (ARN) do cluster para o valor
Resource
que inclui um caractere curinga (*). Como resultado, esta declaração se aplica a todos os clusters do Amazon Redshift pertencentes à conta da AWS raiz com o qual o identificador de cluster começa comproduction
.
Políticas gerenciadas pela AWS para o Amazon Redshift
A AWS aborda muitos casos de uso comuns fornecendo políticas autônomas do IAM que são criadas e administradas pela AWS. As políticas gerenciadas concedem permissões necessárias para casos de uso comuns, de maneira que você possa evitar a necessidade de investigar quais permissões são necessárias. Para obter mais informações, consulte Políticas gerenciadas pela AWS no Manual do usuário do IAM.
Você também pode criar suas próprias políticas do IAM personalizadas para conceder permissões para operações e recursos da API do Amazon Redshift. É possível anexar essas políticas personalizadas a grupos ou perfis do IAM que exijam essas permissões.
As seguintes seções descrevem políticas gerenciadas pela AWS, que podem ser anexadas aos usuários de sua conta e são específicas do Amazon Redshift.
AmazonRedshiftReadOnlyAccess
Concede acesso de somente leitura a todos os recursos do Amazon Redshift da conta da AWS.
Você pode encontrar a política AmazonRedshiftReadOnlyAccess
AmazonRedshiftFullAccess
Concede acesso total a todos os recursos do Amazon Redshift da conta da AWS. Além disso, esta política concede acesso completo a todos os recursos do Amazon Redshift Serverless.
Você pode encontrar a política AmazonRedshiftFullAccess
AmazonRedshiftQueryEditor
Concede acesso total ao editor de consultas no console do Amazon Redshift.
Você pode encontrar a política AmazonRedshiftQueryEditor
AmazonRedshiftDataFullAccess
Concede acesso total às operações e recursos da API de dados do Amazon Redshift para a conta da AWS.
Você pode encontrar a política AmazonRedshiftDataFullAccess
AmazonRedshiftQueryEditorV2FullAccess
Concede acesso total às operações e recursos do editor de consultas v2 do Amazon Redshift. Essa política também concede acesso a outros serviços necessários.
Você pode encontrar a política AmazonRedshiftQueryEditorV2FullAccess
AmazonRedshiftQueryEditorV2NoSharing
Concede a capacidade de trabalhar com o editor de consultas v2 do Amazon Redshift sem compartilhar recursos. Essa política também concede acesso a outros serviços necessários. A entidade principal que usa essa política não pode etiquetar seus recursos (como consultas) para compartilhá-los com outras entidades principais na mesma Conta da AWS.
Você pode encontrar a política AmazonRedshiftQueryEditorV2NoSharing
AmazonRedshiftQueryEditorV2ReadSharing
Concede a capacidade de trabalhar com o editor de consultas v2 do Amazon Redshift com compartilhamento limitado de recursos. Essa política também concede acesso a outros serviços necessários. A entidade principal que usa essa política pode etiquetar seus recursos (como consultas) para compartilhá-los com outras entidades principais na mesma Conta da AWS. A entidade principal concedida pode ler os recursos compartilhados com sua equipe, mas não pode atualizá-los.
Você pode encontrar a política AmazonRedshiftQueryEditorV2ReadSharing
AmazonRedshiftQueryEditorV2ReadWriteSharing
Concede a capacidade de trabalhar com o editor de consultas v2 do Amazon Redshift com compartilhamento de recursos. Essa política também concede acesso a outros serviços necessários. A entidade principal que usa essa política pode etiquetar seus recursos (como consultas) para compartilhá-los com outras entidades principais na mesma Conta da AWS. A entidade principal concedida pode ler e atualizar os recursos compartilhados com sua equipe.
Você pode encontrar a política AmazonRedshiftQueryEditorV2ReadWriteSharing
AmazonRedshiftServiceLinkedRolePolicy
Não é possível anexar AmazonRedshiftServiceLinkedRolePolicy a suas entidades do IAM. Essa política é anexada a uma função vinculada a serviços que permite que o Amazon Redshift acesse recursos da conta. Para obter mais informações, consulte Usar funções vinculadas a serviço do Amazon Redshift.
Você pode encontrar a política AmazonRedshiftServiceLinkedRolePolicy
AmazonRedshiftAllCommandsFullAccess
Concede a capacidade de usar a função do IAM criada a partir do console do Amazon Redshift e defini-la como padrão para que o cluster execute os comandos COPY do Amazon S3, UNLOAD, CREATE EXTERNAL SCHEMA, CREATE EXTERNAL FUNCTION e CREATE MODEL. A política também concede permissões para executar instruções SELECT para serviços relacionados, como Amazon S3, CloudWatch Logs, Amazon SageMaker ou AWS Glue.
Você pode encontrar a política AmazonRedshiftAllCommandsFullAccess
Você também pode criar suas próprias políticas do IAM personalizadas para conceder permissões para operações e recursos da API do Amazon Redshift. É possível anexar essas políticas personalizadas a grupos ou perfis do IAM que exijam essas permissões.
Atualizações do Amazon Redshift para políticas gerenciadas pela AWS
Visualize detalhes sobre atualizações de políticas gerenciadas pela AWS para Amazon Redshift desde que este serviço começou a rastrear essas mudanças. Para alertas automáticos sobre mudanças nesta página, assine o RSS feed na página de histórico de documentos do Amazon Redshift.
Alteração | Descrição | Data |
---|---|---|
AmazonRedshiftServiceLinkedRolePolicy: atualizar para uma política existente |
Adicionada a permissão para a ação |
8 de março de 2024 |
AmazonRedshiftQueryEditorV2FullAccess: atualizar para uma política existente |
Adicionada a permissão para as ações |
21 de fevereiro de 2024 |
AmazonRedshiftQueryEditorV2NoSharing: atualizar para uma política existente |
Adicionada a permissão para as ações |
21 de fevereiro de 2024 |
AmazonRedshiftQueryEditorV2ReadSharing: atualizar para uma política existente |
Adicionada a permissão para as ações |
21 de fevereiro de 2024 |
AmazonRedshiftQueryEditorV2ReadWriteSharing: atualizar para uma política existente |
Adicionada a permissão para as ações |
21 de fevereiro de 2024 |
AmazonRedshiftReadOnlyAccess: atualizar para uma política existente |
Adicionada a permissão para a ação |
7 de fevereiro de 2024 |
AmazonRedshiftServiceLinkedRolePolicy: atualizar para uma política existente |
Adicionada a permissão para as ações |
31 de outubro de 2023 |
AmazonRedshiftQueryEditorV2NoSharing: atualizar para uma política existente |
Adicionada a permissão para as ações |
16 de agosto de 2023 |
AmazonRedshiftQueryEditorV2ReadSharing: atualizar para uma política existente |
Adicionada a permissão para as ações |
16 de agosto de 2023 |
AmazonRedshiftQueryEditorV2ReadWriteSharing: atualizar para uma política existente |
Adicionada a permissão para as ações |
16 de agosto de 2023 |
AmazonRedshiftServiceLinkedRolePolicy: atualizar para uma política existente |
As permissões para ações no AWS Secrets Manager a fim de criar e gerenciar segredos são adicionadas à política gerenciada. As permissões adicionadas são as seguintes:
|
14 de agosto de 2023 |
AmazonRedshiftServiceLinkedRolePolicy: atualizar para uma política existente |
Permissões para ações no Amazon EC2 para criar e gerenciar grupos de segurança e regras de roteamento são removidas da política gerenciada. Essas permissões se referiam à criação de sub-redes e VPCs. As permissões removidas são as seguintes:
|
8 de maio de 2023 |
AmazonRedshiftDataFullAccess: atualizar para uma política existente |
Adicionada a permissão para a ação |
7 de abril de 2023 |
AmazonRedshiftServiceLinkedRolePolicy: atualizar para uma política existente |
Permissões para ações no Amazon EC2 para criação e gerenciamento de regras de grupos de segurança são adicionadas à política gerenciada. Essas regras e grupos de segurança estão especificamente associados à etiqueta de recurso |
6 de abril de 2023 |
AmazonRedshiftQueryEditorV2NoSharing: atualizar para uma política existente |
Adicionada a permissão para a ação |
21 de março de 2023 |
AmazonRedshiftQueryEditorV2ReadSharing: atualizar para uma política existente |
Adicionada a permissão para a ação |
21 de março de 2023 |
AmazonRedshiftQueryEditorV2ReadWriteSharing: atualizar para uma política existente |
Adicionada a permissão para a ação |
21 de março de 2023 |
AmazonRedshiftQueryEditorV2NoSharing: atualizar para uma política existente |
Adicionada a permissão para a ação |
2 de fevereiro de 2023 |
AmazonRedshiftQueryEditorV2ReadSharing: atualizar para uma política existente |
Adicionada a permissão para a ação |
2 de fevereiro de 2023 |
AmazonRedshiftQueryEditorV2ReadWriteSharing: atualizar para uma política existente |
Adicionada a permissão para a ação |
2 de fevereiro de 2023 |
AmazonRedshiftQueryEditorV2NoSharing: atualizar para uma política existente |
Para conceder permissão para usar blocos de anotações, o Amazon Redshift adicionou permissão para as seguintes ações:
|
17 de outubro de 2022 |
AmazonRedshiftQueryEditorV2ReadSharing: atualizar para uma política existente |
Para conceder permissão para usar blocos de anotações, o Amazon Redshift adicionou permissão para as seguintes ações:
|
17 de outubro de 2022 |
AmazonRedshiftQueryEditorV2ReadWriteSharing: atualizar para uma política existente |
Para conceder permissão para usar blocos de anotações, o Amazon Redshift adicionou permissão para as seguintes ações:
|
17 de outubro de 2022 |
AmazonRedshiftServiceLinkedRolePolicy: atualizar para uma política existente |
O Amazon Redshift adicionou o namespace |
7 de setembro de 2022 |
AmazonRedshiftQueryEditorV2NoSharing: atualizar para uma política existente |
O Amazon Redshift adicionou permissão às ações |
30 de agosto de 2022 |
AmazonRedshiftQueryEditorV2ReadSharing: atualizar para uma política existente |
O Amazon Redshift adicionou permissão às ações |
30 de agosto de 2022 |
AmazonRedshiftQueryEditorV2ReadWriteSharing: atualizar para uma política existente |
O Amazon Redshift adicionou permissão às ações |
30 de agosto de 2022 |
AmazonRedshiftFullAccess: atualizar para uma política existente |
Permissões para o Amazon Redshift Serverless são adicionadas à política gerenciada AmazonRedshiftFullAccess existente. |
22 de julho de 2022 |
AmazonRedshiftDataFullAccess: atualizar para uma política existente |
O Amazon Redshift atualizou a condição de escopo padrão redshift-serverless:GetCredentials da permissão da tag aws:ResourceTag/RedshiftDataFullAccess do StringEquals para StringLike para conceder acesso a recursos marcados com chave de tag RedshiftDataFullAccess e qualquer valor da tag. |
11 de julho de 2022 |
AmazonRedshiftDataFullAccess: atualizar para uma política existente |
O Amazon Redshift adicionou novas permissões para permitir redshift-serverless:GetCredentials para obter credenciais temporárias do Amazon Redshift Serverless. |
8 de julho de 2022 |
AmazonRedshiftQueryEditorV2NoSharing: atualizar para uma política existente |
O Amazon Redshift adicionou permissão à ação |
15 de junho de 2022 |
AmazonRedshiftQueryEditorV2ReadSharing: atualizar para uma política existente |
O Amazon Redshift adicionou permissão à ação |
15 de junho de 2022 |
AmazonRedshiftQueryEditorV2ReadWriteSharing: atualizar para uma política existente |
O Amazon Redshift adicionou permissão à ação |
15 de junho de 2022 |
AmazonRedshiftServiceLinkedRolePolicy: atualizar para uma política existente |
Para habilitar o acesso público a novos endpoints do Amazon Redshift Serverless, o Amazon Redshift aloca e associa endereços IP elásticos à interface de rede elástica do endpoint da VPC na conta do cliente. Ele faz isso por meio de permissões fornecidas por meio da função vinculada ao serviço. Para habilitar esse caso de uso, são adicionadas ações para alocar e liberar um endereço IP elástico à função vinculada ao serviço do Amazon Redshift Serverless. |
26 de maio de 2022 |
AmazonRedshiftQueryEditorV2FullAccess: atualizar para uma política existente |
Permissões para a ação |
22 de fevereiro de 2022 |
AmazonRedshiftQueryEditorV2NoSharing: atualizar para uma política existente |
Permissões para a ação |
22 de fevereiro de 2022 |
AmazonRedshiftQueryEditorV2ReadSharing: atualizar para uma política existente |
Permissões para a ação |
22 de fevereiro de 2022 |
AmazonRedshiftQueryEditorV2ReadWriteSharing: atualizar para uma política existente |
Permissões para a ação |
22 de fevereiro de 2022 |
AmazonRedshiftQueryEditorV2ReadSharing: atualizar para uma política existente |
Adicionada a permissão para ação |
22 de fevereiro de 2022 |
AmazonRedshiftServiceLinkedRolePolicy: atualizar para uma política existente |
O Amazon Redshift adicionou permissões para novas ações para permitir o gerenciamento de recursos de rede e VPC do Amazon Redshift. |
22 de novembro de 2021 |
AmazonRedshiftAllCommandsFullAccess: nova política |
O Amazon RedShift adicionou uma nova política para permitir usar a função do IAM criada a partir do console do Amazon Redshift e defini-la como padrão para que o cluster execute os comandos COPY do Amazon S3, UNLOAD, CREATE EXTERNAL SCHEMA, CREATE EXTERNAL FUNCTION, CREATE MODEL ou CREATE LIBRARY. |
18 de novembro de 2021 |
AmazonRedshiftServiceLinkedRolePolicy: atualizar para uma política existente |
O Amazon Redshift adicionou permissões para novas ações para permitir o gerenciamento de grupos de log e fluxos de log do CloudWatch do Amazon Redshift, inclusive exportação de log de auditoria. |
15 de novembro de 2021 |
AmazonRedshiftFullAccess: atualizar para uma política existente |
O Amazon Redshift adicionou novas permissões para permitir explicabilidade do modelo, DynamoDB, Redshift Spectrum e federação do Amazon RDS. | 07 de outubro de 2021 |
AmazonRedshiftQueryEditorV2FullAccess: nova política |
O Amazon Redshift adicionou uma nova política para permitir acesso total ao editor de consultas v2 do Amazon Redshift. |
24 de setembro de 2021 |
AmazonRedshiftQueryEditorV2NoSharing: nova política |
O Amazon Redshift adicionou uma nova política para permitir o uso do editor de consultas v2 do Amazon Redshift sem compartilhar recursos. |
24 de setembro de 2021 |
AmazonRedshiftQueryEditorV2ReadSharing: nova política |
O Amazon Redshift adicionou uma nova política para permitir o compartilhamento de leitura no editor de consultas v2 do Amazon Redshift. |
24 de setembro de 2021 |
AmazonRedshiftQueryEditorV2ReadWriteSharing: nova política |
O Amazon Redshift adicionou uma nova política para permitir o compartilhamento de leitura e atualização no editor de consultas v2 do Amazon Redshift. |
24 de setembro de 2021 |
AmazonRedshiftFullAccess: atualizar para uma política existente |
O Amazon Redshift adicionou novas permissões para permitir |
18 de agosto de 2021 |
AmazonRedshiftDataFullAccess: atualizar para uma política existente |
O Amazon Redshift adicionou novas permissões para permitir |
12 de agosto de 2021 |
AmazonRedshiftDataFullAccess: atualizar para uma política existente |
O Amazon Redshift adicionou novas permissões para permitir |
27 de julho de 2021 |
O Amazon Redshift começou a monitorar alterações |
O Amazon Redshift começou a monitorar alterações para suas políticas gerenciadas pela AWS. |
27 de julho de 2021 |
Permissões necessárias para usar Redshift Spectrum
O Amazon Redshift Spectrum requer permissões para outros serviços da AWS para acessar recursos. Para obter detalhes sobre as permissões em políticas do IAM para Redshift Spectrum, consulte Políticas do IAM para Amazon Redshift Spectrum no Guia do desenvolvedor de database do Amazon Redshift.
Permissões necessárias para usar o console do Amazon Redshift
Para que um usuário trabalhe com o console do Amazon Redshift, esse usuário deve ter um conjunto mínimo de permissões que permita ao usuário descrever os recursos do Amazon Redshift para sua conta da AWS. Essas permissões também devem permitir que o usuário descreva outras informações relacionadas, incluindo segurança do Amazon EC2, Amazon CloudWatch, Amazon SNS e informações de rede.
Se você criar uma política do IAM que seja mais restritiva que as permissões mínimas necessárias, o console não funcionará como pretendido para os usuários com essa política do IAM. Para garantir que esses usuários ainda possam usar o console do Amazon Redshift, anexe também a política gerenciada pelo AmazonRedshiftReadOnlyAccess
ao usuário. Como fazer isso é descrito em Políticas gerenciadas pela AWS para o Amazon Redshift.
Para obter informações para conceder ao usuário acesso ao editor de consulta no console do Amazon Redshift, consulte Permissões necessárias para usar o editor de consulta do console do Amazon Redshift.
Não é necessário conceder permissões mínimas do console para usuários que fazem chamadas somente à AWS CLI ou à API do Amazon Redshift.
Permissões necessárias para usar o editor de consulta do console do Amazon Redshift
Para que um usuário trabalhe com o editor de consultas do Amazon Redshift, esse usuário deve ter um conjunto mínimo de permissões para as operações da API de dados do Amazon Redshift e do Amazon Redshift. Para se conectar a um banco de dados usando um segredo, você também deve ter permissões do Secrets Manager.
Para conceder a um usuário acesso ao editor de consultas no console do Amazon Redshift, anexe as políticas AmazonRedshiftQueryEditor
e AmazonRedshiftReadOnlyAccess
gerenciadas pela AWS. A política AmazonRedshiftQueryEditor
permite que o usuário recupere os resultados de apenas suas próprias instruções SQL. Ou seja, instruções apresentadas pelo mesmo aws:userid
, como mostrado nesta seção da política AmazonRedshiftQueryEditor
gerenciada pela AWS.
{ "Sid":"DataAPIIAMStatementPermissionsRestriction", "Action": [ "redshift-data:GetStatementResult", "redshift-data:CancelStatement", "redshift-data:DescribeStatement", "redshift-data:ListStatements" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "redshift-data:statement-owner-iam-userid": "${aws:userid}" } } }
Para permitir que um usuário recupere os resultados das instruções SQL de outras pessoas na mesma função do IAM, crie sua própria política sem a condição de limitar o acesso ao usuário atual. Limite também o acesso para alterar uma política para um administrador.
Permissões necessárias para usar o editor de consultas v2
Para trabalhar com o editor de consultas do Amazon Redshift v2, o usuário deve ter um conjunto mínimo de permissões para o Amazon Redshift, as operações do editor de consultas v2 e outros produtos da AWS como AWS Key Management Service, AWS Secrets Manager e serviço de marcação.
Para conceder ao usuário acesso total ao editor de consultas v2, anexe a política AmazonRedshiftQueryEditorV2FullAccess
gerenciada pela AWS. A política AmazonRedshiftQueryEditorV2FullAccess
permite que o usuário compartilhe recursos do editor de consultas v2, como consultas, com outras pessoas na mesma equipe. Para obter detalhes sobre como o acesso aos recursos do editor de consulta v2 é controlado, consulte a definição da política gerenciada específica para o editor de consultas v2 no console do IAM.
Algumas políticas do editor de consultas v2 do Amazon Redshift gerenciadas pela AWS usam etiquetas da AWS dentro de condições para definir escopo de acesso aos recursos. No editor de consultas v2, o compartilhamento de consultas baseia-se na chave e no valor da tag "aws:ResourceTag/sqlworkbench-team": "${aws:PrincipalTag/sqlworkbench-team}"
na política do IAM anexada à entidade principal (o perfil do IAM). As entidades principais na mesma Conta da AWS com o mesmo valor de etiqueta (por exemplo, accounting-team
) estão na mesma equipe no editor de consultas v2. Só é possível ter associação a uma equipe por vez. Um usuário com permissões administrativas pode configurar equipes no console do IAM fornecendo a todos os membros da equipe o mesmo valor para a etiqueta sqlworkbench-team
. Se o valor da etiqueta sqlworkbench-team
for alterado para um usuário do IAM ou uma função do IAM, poderá haver um atraso até que a alteração seja refletida nos recursos compartilhados. Se o valor da etiqueta de um recurso (como uma consulta) for alterado, poderá haver novamente um atraso até que a alteração seja refletida. Os membros da equipe também devem ter a permissão tag:GetResources
para compartilhar.
Exemplo: para adicionar a etiqueta accounting-team
para uma função do IAM
Faça login no AWS Management Console e abra o console do IAM em https://console.aws.amazon.com/iam/
. -
No painel de navegação do console, escolha Roles (Funções) e, em seguida, escolha o nome da função que deseja editar.
-
Escolha a guia Tags (Etiquetas) e escolha Add tags (Gerenciar etiquetas).
-
Adicione a chave da etiqueta sqlworkbench-team e o valor
accounting-team
. -
Escolha Salvar alterações.
Agora, quando uma entidade principal do IAM (com essa função do IAM anexada) compartilha uma consulta com a equipe, outras entidades principais com o mesmo valor de etiqueta
accounting-team
pode exibir a consulta.
Para obter mais informações sobre como anexar uma etiqueta a uma entidade principal, inclusive funções do IAM e usuários do IAM, consulte Recursos de etiquetas do IAM no Guia do usuário do IAM.
Você também pode configurar equipes no nível da sessão usando um provedor de identidades (IdP). Isso permite que vários usuários que usam a mesma função do IAM tenham uma equipe diferente. A política de confiança da função do IAM deve permitir a operação sts:TagSession
. Para obter mais informações, consulte Permissões necessárias adicionar etiquetas de sessão no Guia do usuário do IAM. Adicione o atributo de etiqueta da entidade principal à declaração do SAML fornecida pelo IdP.
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:sqlworkbench-team"> <AttributeValue>accounting-team</AttributeValue> </Attribute>
Siga as instruções para que seu provedor de identidades (IdP) preencha o atributo SAML com o conteúdo proveniente do diretório. Para obter mais informações sobre provedores de identidade (IdPs) e o Amazon Redshift, consulte Usar a autenticação do IAM para gerar credenciais do usuário do banco de dados e Provedores de identidade e federação no Guia do usuário do IAM.
O sqlworkbench:CreateNotebookVersion
concede permissão para obter o conteúdo atual de células de bloco de anotações e criar uma versão de bloco de anotações em sua conta. Ou seja, no momento da criação da versão, o conteúdo atual do bloco de anotações é igual ao conteúdo da versão. Posteriormente, o conteúdo das células na versão não será modificado à medida que o bloco de anotações atual for atualizado. Osqlworkbench:GetNotebookVersion
concede permissão para obter uma versão do bloco de anotações. Um usuário que não tem a permissão sqlworkbench:BatchGetNotebookCell
, mas tem as permissões sqlworkbench:CreateNotebookVersion
e sqlworkbench:GetNotebookVersion
em um bloco de anotações, tem acesso às células do bloco de anotações na versão. Esse usuário sem a permissão sqlworkbench:BatchGetNotebookCell
ainda pode recuperar o conteúdo das células de um bloco de anotações criando uma versão e obtendo essa versão criada.
Permissões necessárias para usar o programador do Amazon Redshift
Ao usar o programador Amazon Redshift, você configura uma função IAM com uma relação de confiança com o programador Amazon Redshift (scheduler.redshift.amazonaws.com
) para permitir que o programador assuma permissões em seu nome. Você também anexa uma política (permissões) à função para as operações da API do Amazon Redshift que deseja programar.
O exemplo a seguir mostra o documento de política no formato JSON para configurar uma relação de confiança com o programador Amazon Redshift e o Amazon Redshift.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "scheduler.redshift.amazonaws.com", "redshift.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
Para obter mais informações sobre entidades confiáveis, consulte Criar uma função para delegar permissões a um serviço da AWS no Manual do usuário do IAM.
Você também deve adicionar permissão para as operações do Amazon Redshift que deseja programar.
Para que o programador use a operação ResizeCluster
, adicione uma permissão que seja semelhante à seguinte à sua política do IAM. Dependendo do seu ambiente, você pode desejar tornar a política mais restritiva.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "redshift:ResizeCluster", "Resource": "*" } ] }
Para obter as etapas para criar uma função para o programador do Amazon Redshift, consulte Criar uma função para um serviço da AWS (console) no Manual do usuário do IAM. Faça estas escolhas ao criar uma função no console do IAM:
-
Em Choose the service that will use this role (Escolher o serviço que usará esta função): escolha Redshift.
-
Em Select your use case (Selecionar seu caso de uso), escolha Redshift - programador.
-
Crie ou anexe uma política à função que permite que uma operação do Amazon Redshift seja programada. Escolha Create policy (Criar política) ou modifique a função para anexar uma política. Insira a política JSON para a operação que está para ser programada.
-
Depois de criar a função, edite o Trust Relationship (Relacionamento de confiança) da função do IAM para incluir o serviço
redshift.amazonaws.com
.
A função do IAM que você cria em entidades confiáveis de scheduler.redshift.amazonaws.com
e redshift.amazonaws.com
. Ele também tem uma política anexada que permite uma ação de API do Amazon Redshift compatível, como "redshift:ResizeCluster"
.
Permissões necessárias para usar o programador do Amazon EventBridge
Ao usar o programador do Amazon EventBridge, você configura uma função do IAM com uma relação de confiança com o programador do EventBridge (events.amazonaws.com
) para permitir que o programador assuma permissões em seu nome. Você também anexa uma política (permissões) à função para as operações da API de dados do Amazon Redshift que deseja programar e uma política para operações do Amazon EventBridge.
Use o programador EventBridge ao criar consultas programadas com o editor de consulta do Amazon Redshift no console.
Você pode criar uma função do IAM para executar consultas programadas no console do IAM. Nesta função do IAM, anexe AmazonEventBridgeFullAccess
e AmazonRedshiftDataFullAccess
.
O exemplo a seguir mostra o documento de política no formato JSON para configurar um relacionamento de confiança com o programador do EventBridge.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "events.amazonaws.com", ] }, "Action": "sts:AssumeRole" } ] }
Para obter mais informações sobre entidades confiáveis, consulte Criar uma função para delegar permissões a um serviço da AWS no Manual do usuário do IAM.
Para obter as etapas para criar uma função para o programador do EventBridge, consulte Criar uma função para um serviço da AWS (console) no Manual do usuário do IAM. Faça estas escolhas ao criar uma função no console do IAM:
-
Em Escolha o serviço que usará esta função, escolha CloudWatch Events.
-
Em Selecionar o caso de uso: escolha CloudWatch Events.
-
Anexe as seguintes políticas de permissão:
AmazonEventBridgeFullAccess
eAmazonRedshiftDataFullAccess
.
A função do IAM que você cria tem uma entidade confiável de events.amazonaws.com
. Ele também tem uma política anexada que permite ações compatíveis da API de dados do Amazon Redshift, como "redshift-data:*"
.
Permissões necessárias para usar o machine learning (ML) do Amazon Redshift
A seguir, você encontra uma descrição das permissões necessárias para usar o machine learning (ML) do Amazon Redshift para diferentes casos de uso.
Para que seus usuários utilizem o Amazon Redshift ML com o Amazon SageMaker, crie uma função do IAM com uma política mais restritiva do que a padrão. Você pode usar a política a seguir. Você também pode modificar essa política para atender às suas necessidades.
A política a seguir mostra as permissões necessárias para executar o SageMaker Autopilot com explicabilidade do modelo do Amazon Redshift.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateAutoMLJob", "sagemaker:CreateCompilationJob", "sagemaker:CreateEndpoint", "sagemaker:DescribeAutoMLJob", "sagemaker:DescribeTrainingJob", "sagemaker:DescribeCompilationJob", "sagemaker:DescribeProcessingJob", "sagemaker:DescribeTransformJob", "sagemaker:ListCandidatesForAutoMLJob", "sagemaker:StopAutoMLJob", "sagemaker:StopCompilationJob", "sagemaker:StopTrainingJob", "sagemaker:DescribeEndpoint", "sagemaker:InvokeEndpoint", "sagemaker:StopProcessingJob", "sagemaker:CreateModel", "sagemaker:CreateProcessingJob" ], "Resource": [ "arn:aws:sagemaker:*:*:model/*redshift*", "arn:aws:sagemaker:*:*:training-job/*redshift*", "arn:aws:sagemaker:*:*:automl-job/*redshift*", "arn:aws:sagemaker:*:*:compilation-job/*redshift*", "arn:aws:sagemaker:*:*:processing-job/*redshift*", "arn:aws:sagemaker:*:*:transform-job/*redshift*", "arn:aws:sagemaker:*:*:endpoint/*redshift*" ] }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/sagemaker/Endpoints/*redshift*", "arn:aws:logs:*:*:log-group:/aws/sagemaker/ProcessingJobs/*redshift*", "arn:aws:logs:*:*:log-group:/aws/sagemaker/TrainingJobs/*redshift*", "arn:aws:logs:*:*:log-group:/aws/sagemaker/TransformJobs/*redshift*" ] }, { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData" ], "Resource": "*", "Condition": { "StringEquals": { "cloudwatch:namespace": [ "SageMaker", "/aws/sagemaker/Endpoints", "/aws/sagemaker/ProcessingJobs", "/aws/sagemaker/TrainingJobs", "/aws/sagemaker/TransformJobs" ] } } }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetAuthorizationToken", "ecr:GetDownloadUrlForLayer" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetBucketAcl", "s3:GetBucketCors", "s3:GetEncryptionConfiguration", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:ListMultipartUploadParts", "s3:ListBucketMultipartUploads", "s3:PutObject", "s3:PutBucketAcl", "s3:PutBucketCors", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:CreateBucket" ], "Resource": [ "arn:aws:s3:::redshift-downloads", "arn:aws:s3:::redshift-downloads/*", "arn:aws:s3:::*redshift*", "arn:aws:s3:::*redshift*/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetBucketAcl", "s3:GetBucketCors", "s3:GetEncryptionConfiguration", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:ListMultipartUploadParts", "s3:ListBucketMultipartUploads", "s3:PutObject", "s3:PutBucketAcl", "s3:PutBucketCors", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:CreateBucket" ], "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "s3:ExistingObjectTag/Redshift": "true" } } }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::*:role/*", "Condition": { "StringEquals": { "iam:PassedToService": [ "redshift.amazonaws.com", "sagemaker.amazonaws.com" ] } } } ] }
A política a seguir mostra todas as permissões mínimas para acesso à federação do Amazon DynamoDB, Redshift Spectrum e Amazon RDS.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateAutoMLJob", "sagemaker:CreateCompilationJob", "sagemaker:CreateEndpoint", "sagemaker:DescribeAutoMLJob", "sagemaker:DescribeTrainingJob", "sagemaker:DescribeCompilationJob", "sagemaker:DescribeProcessingJob", "sagemaker:DescribeTransformJob", "sagemaker:ListCandidatesForAutoMLJob", "sagemaker:StopAutoMLJob", "sagemaker:StopCompilationJob", "sagemaker:StopTrainingJob", "sagemaker:DescribeEndpoint", "sagemaker:InvokeEndpoint", "sagemaker:StopProcessingJob", "sagemaker:CreateModel", "sagemaker:CreateProcessingJob" ], "Resource": [ "arn:aws:sagemaker:*:*:model/*redshift*", "arn:aws:sagemaker:*:*:training-job/*redshift*", "arn:aws:sagemaker:*:*:automl-job/*redshift*", "arn:aws:sagemaker:*:*:compilation-job/*redshift*", "arn:aws:sagemaker:*:*:processing-job/*redshift*", "arn:aws:sagemaker:*:*:transform-job/*redshift*", "arn:aws:sagemaker:*:*:endpoint/*redshift*" ] }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/sagemaker/Endpoints/*redshift*", "arn:aws:logs:*:*:log-group:/aws/sagemaker/ProcessingJobs/*redshift*", "arn:aws:logs:*:*:log-group:/aws/sagemaker/TrainingJobs/*redshift*", "arn:aws:logs:*:*:log-group:/aws/sagemaker/TransformJobs/*redshift*" ] }, { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData" ], "Resource": "*", "Condition": { "StringEquals": { "cloudwatch:namespace": [ "SageMaker", "/aws/sagemaker/Endpoints", "/aws/sagemaker/ProcessingJobs", "/aws/sagemaker/TrainingJobs", "/aws/sagemaker/TransformJobs" ] } } }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetAuthorizationToken", "ecr:GetDownloadUrlForLayer" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetBucketAcl", "s3:GetBucketCors", "s3:GetEncryptionConfiguration", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:ListMultipartUploadParts", "s3:ListBucketMultipartUploads", "s3:PutObject", "s3:PutBucketAcl", "s3:PutBucketCors", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:CreateBucket" ], "Resource": [ "arn:aws:s3:::redshift-downloads", "arn:aws:s3:::redshift-downloads/*", "arn:aws:s3:::*redshift*", "arn:aws:s3:::*redshift*/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetBucketAcl", "s3:GetBucketCors", "s3:GetEncryptionConfiguration", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:ListMultipartUploadParts", "s3:ListBucketMultipartUploads", "s3:PutObject", "s3:PutBucketAcl", "s3:PutBucketCors", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:CreateBucket" ], "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "s3:ExistingObjectTag/Redshift": "true" } } }, { "Effect": "Allow", "Action": [ "dynamodb:Scan", "dynamodb:DescribeTable", "dynamodb:Getitem" ], "Resource": [ "arn:aws:dynamodb:*:*:table/*redshift*", "arn:aws:dynamodb:*:*:table/*redshift*/index/*" ] }, { "Effect": "Allow", "Action": [ "elasticmapreduce:ListInstances" ], "Resource": [ "arn:aws:elasticmapreduce:*:*:cluster/*redshift*" ] }, { "Effect": "Allow", "Action": [ "elasticmapreduce:ListInstances" ], "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "elasticmapreduce:ResourceTag/Redshift": "true" } } }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:*:*:function:*redshift*" }, { "Effect": "Allow", "Action": [ "glue:CreateDatabase", "glue:DeleteDatabase", "glue:GetDatabase", "glue:GetDatabases", "glue:UpdateDatabase", "glue:CreateTable", "glue:DeleteTable", "glue:BatchDeleteTable", "glue:UpdateTable", "glue:GetTable", "glue:GetTables", "glue:BatchCreatePartition", "glue:CreatePartition", "glue:DeletePartition", "glue:BatchDeletePartition", "glue:UpdatePartition", "glue:GetPartition", "glue:GetPartitions", "glue:BatchGetPartition" ], "Resource": [ "arn:aws:glue:*:*:table/*redshift*/*", "arn:aws:glue:*:*:catalog", "arn:aws:glue:*:*:database/*redshift*" ] }, { "Effect": "Allow", "Action": [ "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:ListSecretVersionIds" ], "Resource": [ "arn:aws:secretsmanager:*:*:secret:*redshift*" ] }, { "Effect": "Allow", "Action": [ "secretsmanager:GetRandomPassword", "secretsmanager:ListSecrets" ], "Resource": "*", "Condition": { "StringEquals": { "secretsmanager:ResourceTag/Redshift": "true" } } }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::*:role/*", "Condition": { "StringEquals": { "iam:PassedToService": [ "redshift.amazonaws.com", "glue.amazonaws.com", "sagemaker.amazonaws.com", "athena.amazonaws.com" ] } } } ] }
Opcionalmente, para usar uma chave do AWS KMS para criptografia, adicione as permissões a seguir à política.
{ "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GenerateDataKey*" ], "Resource": [ "arn:aws:kms:<your-region>:<your-account-id>:key/<your-kms-key>" ] }
Para permitir que o Amazon Redshift e o SageMaker assumam a função do IAM precedente para interagir com outros serviços, adicione a política de confiança a seguir à função.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "redshift.amazonaws.com", "sagemaker.amazonaws.com", "forecast.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
Na precedente, o bucket do Amazon S3 redshift-downloads/redshift-ml/
é o local onde os dados de exemplo usados para outras etapas e exemplos são armazenados. Você pode remover esse bucket se não precisar carregar dados do Amazon S3. Ou substitua-o por outros buckets do Amazon S3 que você usa para carregar dados no Amazon Redshift.
Os valores your-account-id
, your-role
e your-s3-bucket
são o ID da conta, a função e o bucket especificados no comando CREATE MODEL.
Opcionalmente, use as chaves do AWS KMS da política de exemplo se você especificar uma chave do AWS KMS ao usar o Amazon Redshift ML. O valor your-kms-key
é a chave que você usa como parte do comando CREATE MODEL.
Ao especificar uma Virtual Private Cloud (VPC) privada para o trabalho de ajuste de hiperparâmetros, adicione as permissões a seguir.
{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }
Para trabalhar com explicação do modelo, verifique se você tem as permissões para chamar as operações da API do SageMaker. Recomendamos usar a política gerenciada AmazonSageMakerFullAccess
. Para criar uma função do IAM com uma política mais restritiva, use a política a seguir.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker::CreateEndpoint", "sagemaker::CreateEndpointConfig", "sagemaker::DeleteEndpoint", "sagemaker::DeleteEndpointConfig", "sagemaker::DescribeEndpoint", "sagemaker::DescribeEndpointConfig", "sagemaker::DescribeModel", "sagemaker::InvokeEndpoint", "sagemaker::ListTags" ], "Resource": "*" } ] }
Para obter mais informações sobre a política gerenciada AmazonSageMakerFullAccess
, consulte AmazonSageMakerFullAccess no Guia do desenvolvedor do Amazon SageMaker.
Se você quiser criar modelos do Forecast, recomendamos que use a política gerenciada AmazonForecastFullAccess
. Se você quiser usar uma política mais restritiva, adicione a política a seguir ao seu perfil do IAM.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "forecast:CreateAutoPredictor", "forecast:CreateDataset", "forecast:CreateDatasetGroup", "forecast:CreateDatasetImportJob", "forecast:CreateForecast", "forecast:CreateForecastExportJob", "forecast:DeleteResourceTree", "forecast:DescribeAutoPredictor", "forecast:DescribeDataset", "forecast:DescribeDatasetGroup", "forecast:DescribeDatasetImportJob", "forecast:DescribeForecast", "forecast:DescribeForecastExportJob", "forecast:StopResource", "forecast:TagResource", "forecast:UpdateDatasetGroup" ], "Resource": "*" } ] }
Se você quiser criar modelos do Amazon Bedrock, recomendamos que use a política gerenciada AmazonBedrockFullAccess
. Se você quiser usar uma política mais restritiva, adicione a política a seguir ao seu perfil do IAM.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "bedrock:InvokeModel", "Resource": [ "*", "arn:aws:bedrock:
>region<
::foundation-model/*" ] } ] }
Para ter mais informações sobre o Amazon Redshift ML, consulte Usar Machine Learning no Amazon Redshift, CREATE MODEL ou CREATE EXTERNAL MODEL.
Permissões para ingestão de streaming
A ingestão de streaming funciona com dois serviços: o Kinesis Data Streams e o Amazon MSK.
Permissões necessárias para usar a ingestão de streaming com o Kinesis Data Streams
Há um procedimento com um exemplo de política gerenciada disponível em Conceitos básicos da ingestão de streaming do Amazon Kinesis Data Streams.
Permissões necessárias para usar a ingestão de streaming com o Amazon MSK
Há um procedimento com um exemplo de política gerenciada disponível em Conceitos básicos da ingestão de streaming do Amazon Managed Streaming for Apache Kafka.
Permissões necessárias para usar as operações de API de compartilhamento de dados
Para controlar o acesso às operações de API de compartilhamento de dados, use as políticas baseadas em ações do IAM. Para obter mais informações sobre como gerenciar políticas do IAM, consulte Gerenciar políticas do IAM no Manual do usuário do IAM.
Em particular, suponha que um administrador de cluster de produtor precise usar a chamada AuthorizeDataShare
para autorizar a saída de uma unidade de compartilhamento de dados fora de uma conta da Conta da AWS. Nesse caso, você configura uma política baseada em ação do IAM para conceder essa permissão. Use a chamada DeauthorizeDataShare
para revogar a saída.
Ao usar políticas baseadas em ações do IAM, você também pode especificar um recurso do IAM na política, como DataShareARN
. Veja a seguir o formato e um exemplo de DataShareARN
.
arn:aws:redshift:region:account-id:datashare:namespace-guid/datashare-name arn:aws:redshift:us-east-1:555555555555:datashare:86b5169f-01dc-4a6f-9fbb-e2e24359e9a8/SalesShare
Você pode restringir o acesso AuthorizeDataShare
a um datashare específico especificando o nome do datashare na política do IAM.
{ "Statement": [ { "Action": [ "redshift:AuthorizeDataShare", ], "Resource": [ "arn:aws:redshift:us-east-1:555555555555:datashare:86b5169f-01dc-4a6f-9fbb-e2e24359e9a8/SalesShare" ], "Effect": "Deny" } ] }
Você também pode restringir a política do IAM a todos os conjuntos de dados de propriedade de um cluster de produtores específico. Para fazer isso, substitua o valor datashare-name
na política com um curinga ou um asterisco. Mantenha o valor de cluster namespace-guid
.
arn:aws:redshift:us-east-1:555555555555:datashare:86b5169f-01dc-4a6f-9fbb-e2e24359e9a8/*
A seguir está a política do IAM que impede que uma entidade chame AuthorizeDataShare
nas unidades de compartilhamento de dados detidas por um cluster de produtor específico.
{ "Statement": [ { "Action": [ "redshift:AuthorizeDataShare", ], "Resource": [ "arn:aws:redshift:us-east-1:555555555555:datashare:86b5169f-01dc-4a6f-9fbb-e2e24359e9a8/*" ], "Effect": "Deny" } ] }
O DataShareARN
restringe o acesso com base no nome da unidade de compartilhamento de dados e no ID global exclusivo (GUID) para o namespace do cluster proprietário. Ele faz isso especificando o nome como um asterisco.
Políticas de recursos de GetClusterCredentials
Para se conectar a um banco de dados de cluster usando uma conexão JDBC ou ODBC com credenciais de banco de dados do IAM ou chamar de modo programático a ação GetClusterCredentials
, você precisará de um conjunto mínimo de permissões. No mínimo, você precisará de permissão para chamar a ação redshift:GetClusterCredentials
com acesso a um recurso dbuser
.
Se você usar uma conexão JDBC ou ODBC, em vez de especificar server
e port
, você poderá especificar cluster_id
e region
; mas, para fazer isso, sua política deve permitir a ação redshift:DescribeClusters
com acesso ao recurso cluster
.
Se chamar GetClusterCredentials
com os parâmetros opcionais Autocreate
, DbGroups
e DbName
, verifique se permitiu as ações e o acesso aos recursos listados na tabela a seguir.
Parâmetro de GetClusterCredentials |
Ação |
Recurso |
---|---|---|
|
redshift:CreateClusterUser |
|
|
redshift:JoinGroup |
|
|
N/D | dbname |
Para obter mais informações sobre recursos, consulte Recursos e operações do Amazon Redshift.
Você também pode incluir as seguintes condições na política:
-
redshift:DurationSeconds
-
redshift:DbName
-
redshift:DbUser
Para obter mais informações sobre as condições, consulte Especificar condições em uma política.
Exemplos de política gerenciada pelo cliente
Nesta seção, você pode encontrar exemplos de políticas de usuário que concedem permissões para várias ações do Amazon Redshift. Essas políticas funcionam quando você está usando a API do Amazon Redshift, AWS SDKs ou a AWS CLI.
nota
Todos os exemplos usam a Região do Oeste dos EUA (Oregon) (us-west-2
) e contêm IDs de conta fictícios.
Exemplo 1: permitir ao usuário acesso total a todas as ações e recursos do Amazon Redshift
A política a seguir permite acesso a todas as ações do Amazon Redshift em todos os recursos.
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowRedshift", "Action": [ "redshift:*" ], "Effect": "Allow", "Resource": "*" } ] }
O valor redshift:*
no elemento Action
indica todas as ações no Amazon Redshift.
Exemplo 2: negar a um usuário o acesso a um conjunto de ações do Amazon Redshift
Por padrão, todas as permissões são negadas. Contudo, às vezes você precisa negar explicitamente o acesso a uma ação ou conjunto de ações específico. A política a seguir permite o acesso a todas as ações do Amazon Redshift e nega explicitamente o acesso a qualquer ação do Amazon Redshift em que o nome comece com Delete
. Essa política se aplica a todos os recursos do Amazon Redshift em us-west-2
.
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowUSWest2Region", "Action": [ "redshift:*" ], "Effect": "Allow", "Resource": "arn:aws:redshift:us-west-2:*" }, { "Sid":"DenyDeleteUSWest2Region", "Action": [ "redshift:Delete*" ], "Effect": "Deny", "Resource": "arn:aws:redshift:us-west-2:*" } ] }
Exemplo 3: permitir que um usuário gerencie clusters
A seguinte política permite que um usuário crie, exclua, modifique e reinicialize todos os clusters e, então, nega permissão para excluir ou alterar qualquer cluster cujo nome de cluster inicie com protected
.
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowClusterManagement", "Action": [ "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:ModifyCluster", "redshift:RebootCluster" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid":"DenyDeleteProtected", "Action": [ "redshift:DeleteCluster" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:cluster:protected*" ], "Effect": "Deny" } ] }
Exemplo 4: permitir que um usuário autorize e revogue acesso ao snapshot
A seguinte política permite que um usuário, por exemplo o Usuário A, faça o seguinte:
-
Autorize o acesso a qualquer snapshot criado a partir de um cluster chamado
shared
. -
Revogue o acesso a snapshot para qualquer snapshot criado a partir do cluster
shared
cujo nome de snapshot inicie comrevokable
.
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowSharedSnapshots", "Action": [ "redshift:AuthorizeSnapshotAccess" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:shared/*" ], "Effect": "Allow" }, { "Sid":"AllowRevokableSnapshot", "Action": [ "redshift:RevokeSnapshotAccess" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:snapshot:*/revokable*" ], "Effect": "Allow" } ] }
Se o Usuário A tiver permitido que o Usuário B acesse um snapshot, o Usuário B deve ter uma política como a seguinte para permitir que o Usuário B restaure um cluster do snapshot. A seguinte política permite que o Usuário B descreva e restaure snapshots e crie clusters. O nome desses clusters deve iniciar com from-other-account
.
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowDescribeSnapshots", "Action": [ "redshift:DescribeClusterSnapshots" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid":"AllowUserRestoreFromSnapshot", "Action": [ "redshift:RestoreFromClusterSnapshot" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:snapshot:*/*", "arn:aws:redshift:us-west-2:444455556666:cluster:from-other-account*" ], "Effect": "Allow" } ] }
Exemplo 5: permitir que um usuário copie um snapshot de cluster e restaure um cluster de um snapshot
A seguinte política permite que um usuário copie qualquer snapshot criado a partir de um cluster chamado big-cluster-1
e restaure qualquer snapshot cujo nome inicie com snapshot-for-restore
.
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowCopyClusterSnapshot", "Action": [ "redshift:CopyClusterSnapshot" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:snapshot:big-cluster-1/*" ], "Effect": "Allow" }, { "Sid":"AllowRestoreFromClusterSnapshot", "Action": [ "redshift:RestoreFromClusterSnapshot" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:snapshot:*/snapshot-for-restore*", "arn:aws:redshift:us-west-2:123456789012:cluster:*" ], "Effect": "Allow" } ] }
Exemplo 6: permitir que um usuário acesse o Amazon Redshift e ações e recursos comuns para serviços da AWS relacionados
A política de exemplo a seguir permite acesso a todas as ações e recursos para Amazon Redshift, Amazon Simple Notification Service (Amazon SNS) e Amazon CloudWatch. Ele também permite ações especificadas em todos os recursos relacionados do Amazon EC2 na conta.
nota
As permissões em nível de recurso não são compatíveis com as ações do Amazon EC2 especificadas nesta política de exemplo.
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowRedshift", "Effect": "Allow", "Action": [ "redshift:*" ], "Resource": [ "*" ] }, { "Sid":"AllowSNS", "Effect": "Allow", "Action": [ "sns:*" ], "Resource": [ "*" ] }, { "Sid":"AllowCloudWatch", "Effect": "Allow", "Action": [ "cloudwatch:*" ], "Resource": [ "*" ] }, { "Sid":"AllowEC2Actions", "Effect": "Allow", "Action": [ "ec2:AllocateAddress", "ec2:AssociateAddress", "ec2:AttachNetworkInterface", "ec2:DescribeAccountAttributes", "ec2:DescribeAddresses", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs" ], "Resource": [ "*" ] } ] }
Exemplo 7: permitir que um usuário marque recursos com o console do Amazon Redshift
O exemplo a seguir permite que um usuário marque recursos no console do Amazon Redshift usando o console do Amazon Redshift usando AWS Resource Groups. Essa política pode ser anexada a uma função de usuário que invoca o console novo ou original do Amazon Redshift. Para obter mais informações sobre marcação, consulte Marcar recursos no Amazon Redshift.
{ "Version": "2012-10-17", "Statement": [ { "Sid":"Tagging permissions", "Effect": "Allow", "Action": [ "redshift:DeleteTags", "redshift:CreateTags", "redshift:DescribeTags", "tag:UntagResources", "tag:TagResources" ], "Resource": "*" } ] }
Política de exemplo para usar GetClusterCredentials
A política a seguir usa esses valores de parâmetro de exemplo:
-
Região:
us-west-2
-
Conta da AWS:
123456789012
-
Nome do cluster:
examplecluster
A política a seguir permite as ações GetCredentials
, CreateClusterUser
e JoinGroup
. A política usa chaves de condição para permitir as ações GetClusterCredentials
e CreateClusterUser
somente quando o ID do usuário da AWS corresponde a "AIDIODR4TAW7CSEXAMPLE:${redshift:DbUser}@yourdomain.com"
. O acesso ao IAM é solicitado somente para o banco de dados "testdb"
. A política também permite que os usuários ingressem em um grupo chamado "common_group"
.
{ "Version": "2012-10-17", "Statement": [ { "Sid":"GetClusterCredsStatement", "Effect": "Allow", "Action": [ "redshift:GetClusterCredentials" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:dbuser:examplecluster/${redshift:DbUser}", "arn:aws:redshift:us-west-2:123456789012:dbname:examplecluster/testdb", "arn:aws:redshift:us-west-2:123456789012:dbgroup:examplecluster/common_group" ], "Condition": { "StringEquals": { "aws:userid":"AIDIODR4TAW7CSEXAMPLE:${redshift:DbUser}@yourdomain.com" } } }, { "Sid":"CreateClusterUserStatement", "Effect": "Allow", "Action": [ "redshift:CreateClusterUser" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:dbuser:examplecluster/${redshift:DbUser}" ], "Condition": { "StringEquals": { "aws:userid":"AIDIODR4TAW7CSEXAMPLE:${redshift:DbUser}@yourdomain.com" } } }, { "Sid":"RedshiftJoinGroupStatement", "Effect": "Allow", "Action": [ "redshift:JoinGroup" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:dbgroup:examplecluster/common_group" ] } ] }