Exemplo de política de contêiner: acesso total entre contas a uma função - AWS Elemental MediaStore

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á.

Exemplo de política de contêiner: acesso total entre contas a uma função

Essa política de exemplo permite acesso entre contas para atualizar qualquer objeto na conta, desde que o usuário esteja conectado por HTTP. Ela também permite acesso entre contas para excluir, fazer download e descrever os objetos por HTTP ou HTTPS em uma conta que tenha assumido a função especificada:

  • A primeira instrução é CrossAccountRolePostOverHttps. Ela permite o acesso à operação PutObject em qualquer objeto e permite esse acesso a qualquer usuário da conta especificada, se essa conta tiver assumido a função especificada em <nome da função>. Ela especifica que esse acesso tem a condição de exigir HTTPS para a operação, essa condição deve sempre ser incluída ao fornecer acesso à operação PutObject.

    Em outras palavras, qualquer principal que tenha acesso a contas cruzadas pode acessar a operação PutObject, mas somente por HTTPS.

  • A segunda instrução é CrossAccountFullAccessExceptPost. Permite acesso a todas as operações, exceto PutObject em qualquer objeto. Permite esse acesso a qualquer usuário da conta especificada se essa conta tiver assumido a função especificada no <nome da função>. Esse acesso não tem a condição de exigir HTTPS para as operações.

    Em outras palavras, qualquer conta que tenha acesso entre contas pode acessar DeleteObject, GetObject e assim por diante, mas não PutObject, e pode fazer isso por HTTP ou HTTPS.

    Se você não excluir a operação PutObject da segunda instrução, a instrução não será válida, porque se você incluir PutObject, é necessário definir explicitamente o HTTPS como uma condição.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CrossAccountRolePostOverHttps", "Effect": "Allow", "Action": "mediastore:PutObject", "Principal":{ "AWS": "arn:aws:iam::<other acct number>:role/<role name>"}, "Resource": "arn:aws:mediastore:<region>:<owner acct number>:container/<container name>/*", "Condition": { "Bool": { "aws:SecureTransport": "true" } } }, { "Sid": "CrossAccountFullAccessExceptPost", "Effect": "Allow", "NotAction": "mediastore:PutObject", "Principal":{ "AWS": "arn:aws:iam::<other acct number>:role/<role name>"}, "Resource": "arn:aws:mediastore:<region>:<owner acct number>:container/<container name>/*" } ] }