Anteriormente, o Amazon Managed Service for Apache Flink (Amazon MSF) era conhecido como Amazon Kinesis Data Analytics for Apache Flink.
Como o Amazon Managed Service for Apache Flink funciona com o IAM
No Amazon MSF, o IAM é usado nos seguintes contextos diferentes:
-
Permissões do aplicativo: controle o acesso do aplicativo a recursos externos, como Amazon S3, Amazon Kinesis Data Streams ou Amazon DynamoDB, que usam autenticação IAM.
-
Permissões de gerenciamento de aplicativos e controle do ciclo de vida: controle o uso das ações de API do Amazon MSF, como CreateApplication, StartApplication e UpdateApplication, que controlam o ciclo de vida do aplicativo. Para obter uma lista completa de todas as ações de API do Amazon MSF que você pode especificar no elemento
Actionde uma declaração de política do IAM, consulte Ações definidas pelo Amazon Kinesis Analytics V2 na Referência de autorização de serviço.
Tópicos
Permissões de gerenciamento de aplicativo e controle do ciclo de vida
Políticas baseadas em identidade para o Managed Service for Apache Flink
Políticas baseadas em recursos dentro do Managed Service for Apache Flink
Listas de controle de acesso (ACLs) no Managed Service for Apache Flink
Perfis vinculadas ao serviço do Managed Service for Apache Flink
Permissões para aplicativos
Você controla as permissões do IAM de um aplicativo Amazon MSF com o perfil do IAM atribuído ao aplicativo, como parte da configuração dele. Esse perfil do IAM determina as permissões do aplicativo para acessar outros serviços, como Amazon S3, Kinesis Data Streams ou DynamoDB, que usam o IAM para autorização.
Atenção
A alteração das permissões de um perfil de serviço pode interromper a funcionalidade do Amazon MSF. Certifique-se de não remover as permissões do aplicativo para baixar o código do aplicativo do bucket do Amazon S3 e enviar logs para o Amazon CloudWatch.
Não existe suporte para atribuir permissões ao aplicativo usando políticas baseadas em recursos. Você não pode especificar um aplicativo Amazon MSF como entidade principal em uma política anexada ao recurso a ser acessado.
Tópicos
Permissões para acessar o código e os logs do aplicativo
O Amazon MSF também usa o perfil do IAM do aplicativo para acessar o código do aplicativo carregado em um bucket do Amazon S3 e para gravar os logs do aplicativo no Amazon CloudWatch Logs.
Quando você cria ou atualiza o aplicativo usando o Console de gerenciamento da AWS, escolha Criar/atualizar o perfil do IAM <nome-do-perfil> com as políticas necessárias na configuração do aplicativo. O Amazon MSF cria e modifica automaticamente o perfil do IAM atribuindo as permissões necessárias ao Amazon S3 e ao CloudWatch Logs.
Se você criar o perfil do IAM manualmente ou se criar e gerenciar o aplicativo usando ferramentas de automação, deverá adicionar as seguintes permissões ao perfil do IAM do aplicativo.
Prevenção do problema "confused deputy" entre serviços
Quando um aplicativo Amazon MSF chama um AWS service (Serviço da AWS) diferente, você pode fornecer permissões de acesso mais granulares. Por exemplo, se um perfil do IAM for reutilizado em vários aplicativos, um aplicativo poderá ter acesso indevido a um recurso. Isso é conhecido como problema do deputado confuso. Para obter informações sobre como o recurso acessado pode restringir o acesso a um aplicativo Amazon MSF específico, consulte Prevenção do problema “confused deputy” entre serviços.
Permissões de gerenciamento de aplicativo e controle do ciclo de vida
As ações para gerenciar o aplicativo e seu ciclo de vida, como CreateApplication, StartApplication e UpdateApplication são controladas por meio de políticas baseadas em identidade associadas ao recurso que executa a ação, como um usuário do IAM, um grupo do IAM ou um recurso, como chamar a API AWS Lambda do Amazon MSF.
nota
A API e o SDK que controlam o ciclo de vida do aplicativo Amazon MSF são chamados de Amazon Kinesis Analytics V2, por motivos de compatibilidade com versões anteriores.
Não há suporte para a atribuição de permissões para ações do ciclo de vida do aplicativo usando políticas baseadas em recursos anexadas ao aplicativo Amazon MSF. O perfil do IAM do aplicativo não é usado para controlar o acesso às ações do ciclo de vida do aplicativo. Você não deve adicionar permissões de ciclo de vida do aplicativo ao perfil do aplicativo.
A tabela a seguir lista os recursos do IAM que você pode usar com ações de ciclo de vida de aplicativos do Amazon MSF.
| Recurso do IAM | Suporte do Amazon Managed Service for Apache Flink |
|---|---|
|
Sim |
|
|
Não |
|
|
Sim |
|
|
Sim |
|
|
Sim |
|
|
Não |
|
|
Sim |
|
|
Sim |
|
|
Sim |
|
|
Não |
|
|
Não |
-
Para obter uma visão geral de como o Managed Service for Apache Flink e outros Serviços da AWS funcionam com a maioria dos recursos do IAM, consulte Serviços da AWS que funcionam com o IAM no Guia do usuário do IAM.
-
Para mais informações sobre os recursos, ações e chaves contextuais de condição específicas do serviço que você pode usar em políticas de permissão do IAM, consulte Ações, recursos e chaves de condição do Amazon Kinesis Analytics V2 na Referência de autorização do serviço.
Tópicos
Ações de políticas de ciclo de vida do aplicativo
Compatível com ações de políticas: sim
Os administradores podem usar as políticas JSON da AWS para especificar quem tem acesso a quê. Ou seja, qual entidade principal pode executar ações em quais recursos e em que condições.
O elemento Action de uma política JSON descreve as ações que podem ser usadas para permitir ou negar acesso em uma política. Incluem ações em uma política para conceder permissões para executar a operação associada.
As ações de política no Amazon MSF usam o prefixo kinesisanalytics antes da ação. As APIs e SDKs do Amazon MSF usam o prefixo Amazon Kinesis Analytics V2.
Para especificar várias ações em uma única declaração, separe-as com vírgulas. O exemplo a seguir mostra a sintaxe para especificar ações políticas do Amazon MSF.
"Action" : [ "kinesisanalytics:action1", "kinesisanalytics:action2" ]
Também é possível especificar várias ações usando curingas (*). Por exemplo, para especificar todas as ações que começam com a palavra Describe, inclua a ação a seguir:
"Action": "kinesisanalytics:Describe*"
Para ver uma lista completa de todas as ações da API do Amazon MSF que você pode especificar no elemento Action de uma declaração de política do IAM, consulte Ações definidas pelo Amazon Kinesis Analytics V2.
Para ver exemplos de políticas baseadas em identidade do Amazon MSF, consulte Exemplos de políticas baseadas em identidade.
Recursos de políticas de ciclo de vida do aplicativo
Compatível com recursos de políticas: sim
Os administradores podem usar as políticas JSON da AWS para especificar quem tem acesso a quê. Ou seja, qual entidade principal pode executar ações em quais recursos e em que condições.
O elemento de política JSON Resource especifica o objeto ou os objetos aos quais a ação se aplica. Como prática recomendada, especifique um recurso usando seu nome do recurso da Amazon (ARN). Para ações em que não é possível usar permissões em nível de recurso, use um curinga (*) para indicar que a instrução se aplica a todos os recursos.
"Resource": "*"
As permissões para ações do ciclo de vida do aplicativo Amazon MSF são definidas para cada aplicativo. O elemento Resource JSON em uma política do IAM define o aplicativo Amazon MSF ao qual as permissões se aplicam.
Você pode atribuir permissão a um único aplicativo especificando o ARN dele ou a um grupo de aplicativos usando curingas. O exemplo a seguir mostra a sintaxe do elemento Resource.
"Resouce" : "arn:partition:kinesisanalytics:Region:account:application/application-name
Você também pode atribuir permissões para controlar um subconjunto de aplicativos usando curingas. Por exemplo, você pode atribuir permissões para controlar todos os aplicativos cujo nome começa com um prefixo específico.
"Resouce" : "arn:partition:kinesisanalytics:Region:account:application/application-name-prefix*
Chaves de condição de política do ciclo de vida do aplicativo
Compatível com chaves de condição de política específicas de serviço: sim
Os administradores podem usar as políticas JSON da AWS para especificar quem tem acesso a quê. Ou seja, qual entidade principal pode executar ações em quais recursos e em que condições.
O elemento Condition especifica quando as instruções são executadas com base em critérios definidos. É possível criar expressões condicionais que usem agentes de condição, como “igual a” ou “menor que”, para fazer a condição da política corresponder aos valores na solicitação. Para ver todas as chaves de condição globais da AWS, consulte Chaves de contexto de condição globais da AWS no Guia do usuário do IAM.
É possível usar chaves de condição para controlar permissões para ações do ciclo de vida do aplicativo do Amazon MSF. Para ver uma lista das chaves de condição do Managed Service for Apache Flink, consulte Chaves de condição para o Amazon Managed Service for Apache Flink na Referência de autorização de serviço. Para saber com quais ações e recursos você pode usar a chave de condição, consulte Ações definidas pelo Amazon Managed Service for Apache Flink.
Controle de acesso por atributo (ABAC) com o Managed Service for Apache Flink
Compatível com ABAC (tags em políticas): sim
É possível implementar o controle de acesso por atributo (ABAC) usando chaves de condição, que é uma estratégia de autorização que define as permissões com base em atributos. Na AWS, esses atributos são chamados de tags. É possível anexar tags a entidades do IAM (usuários ou perfis) e a muitos recursos da AWS. Marcar de entidades e atributos é a primeira etapa do ABAC. Em seguida, você cria políticas de ABAC para permitir operações quando a tag da entidade principal corresponder à tag do recurso que ela estiver tentando acessar.
O ABAC é útil em ambientes que estão crescendo rapidamente e ajuda em situações em que o gerenciamento de políticas se torna um problema.
Para controlar o acesso baseado em tags, forneça informações sobre as tags no elemento de condição de uma política usando as aws:ResourceTag/key-name, aws:RequestTag/key-name ou chaves de condição aws:TagKeys. Se um serviço for compatível com as três chaves de condição para cada tipo de recurso, o valor será Sim para o serviço. Se um serviço for compatível com as três chaves de condição somente para alguns tipos de recursos, o valor será Parcial
-
Para acessar mais informações sobre o ABAC, consulte Definir permissões com base em atributos com autorização ABAC.
-
Para visualizar um tutorial com etapas para configurar o ABAC, consulte Tutorial do IAM: defina permissões para acessar recursos do AWS com base em tags.
Usar credenciais temporárias
Compatível com credenciais temporárias: sim
As ações do ciclo de vida do aplicativo do Amazon MSF oferecem suporte a credenciais temporárias.
Você estará usando credenciais temporárias se fizer login no Console de gerenciamento da AWS usando qualquer método, exceto nome de usuário e senha. Por exemplo, quando você acessa a AWS usando o link de autenticação única (SSO) da sua empresa, esse processo cria credenciais temporárias automaticamente. Você também cria automaticamente credenciais temporárias quando faz login no console como usuário e, em seguida, alterna perfis. Para obter mais informações sobre como alternar funções, consulte Alternar de um usuário para um perfil do IAM (console).
É possível criar credenciais temporárias manualmente usando a API AWS CLI ou AWS. Essas credenciais temporárias podem então ser usadas para acessar o AWS. Recomendamos gerar credenciais temporárias dinamicamente em vez de usar chaves de acesso de longo prazo. Para obter mais informações, consulte Credenciais de segurança temporárias no IAM.
Permissões de entidade principal entre serviços
Compatibilidade com o recurso de encaminhamento de sessões de acesso (FAS): sim
As ações do ciclo de vida do aplicativo Amazon MSF oferecem suporte às permissões da entidade principal entre serviços.
O usuário ou perfil do IAM usado para executar ações na AWS é considerado uma entidade principal. Ao usar alguns serviços, você pode executar uma ação que inicia outra ação em um serviço diferente. As sessões de acesso direto (FAS) usam as permissões da entidade principal chamando um AWS service (Serviço da AWS), bem como o AWS service (Serviço da AWS) solicitante, para fazer solicitações a serviços subsequentes. As solicitações de FAS são feitas somente quando um serviço recebe uma solicitação que exige interações com outros Serviços da AWS ou com recursos para serem concluídas. Nesse caso, você precisa ter permissões para executar ambas as ações. Para obter detalhes da política ao fazer solicitações de FAS, consulte Sessões de acesso direto.
Políticas baseadas em identidade para o Managed Service for Apache Flink
Compatível com políticas baseadas em identidade: sim
As políticas baseadas em identidade são documentos de políticas de permissões JSON que você pode anexar a uma identidade, como usuário do IAM, grupo de usuários ou perfil. Essas políticas controlam quais ações os usuários e perfis podem realizar, em quais recursos e em que condições. Para saber como criar uma política baseada em identidade, consulte Definir permissões personalizadas do IAM com as políticas gerenciadas pelo cliente no Guia do Usuário do IAM.
Com as políticas baseadas em identidade do IAM, é possível especificar ações e recursos permitidos ou negados, assim como as condições sob as quais as ações são permitidas ou negadas. Para saber mais sobre todos os elementos que podem ser usados em uma política JSON, consulte Referência de elemento de política JSON do IAM no Guia do usuário do IAM.
Exemplos de políticas baseadas em identidade para o Managed Service for Apache Flink
Para visualizar exemplos de políticas baseadas em identidade do Managed Service for Apache Flink, consulte Exemplos de políticas baseadas em identidade do Amazon Managed Service for Apache Flink.
Políticas baseadas em recursos dentro do Managed Service for Apache Flink
No momento, o Amazon Managed Service for Apache Flink não oferece suporte ao controle de acesso baseado em recurso.
Listas de controle de acesso (ACLs) no Managed Service for Apache Flink
Compatível com ACLs: não
As listas de controle de acesso (ACLs) controlam quais entidades principais (membros, usuários ou perfis da conta) têm permissões para acessar um recurso. As ACLs são semelhantes às políticas baseadas em recursos, embora não usem o formato de documento de política JSON.
Perfis de serviço para o Managed Service for Apache Flink
Compatível com perfis de serviço: sim
O perfil de serviço é um perfil do IAM que um serviço assume para executar ações em seu nome. Um administrador do IAM pode criar, modificar e excluir um perfil de serviço do IAM. Para obter mais informações, consulte Criar um perfil para delegar permissões a um AWS service (Serviço da AWS) no Guia do Usuário do IAM.
Atenção
Alterar as permissões de um perfil de serviço pode prejudicar a funcionalidade do Managed Service for Apache Flink. Só edite os perfis de serviço quando o Managed Service for Apache Flink orientar você a fazê-lo.
Perfis vinculadas ao serviço do Managed Service for Apache Flink
Compatibilidade com perfis vinculados a serviços: sim
Um perfil vinculado a serviço é um tipo de perfil de serviço vinculado a um AWS service (Serviço da AWS). O serviço pode presumir o perfil de executar uma ação em seu nome. Perfis vinculadas ao serviço aparecem em sua Conta da AWS e são de propriedade do serviço. Um administrador do IAM pode visualizar, mas não editar as permissões para funções vinculadas ao serviço.
Para obter detalhes sobre como criar ou gerenciar perfis vinculados a serviços, consulte Serviços da AWS que funcionam com o IAM. Encontre um serviço na tabela que inclua um Yes na coluna Perfil vinculado ao serviço. Selecione o link Sim para visualizar a documentação da função vinculada a serviço desse serviço.