2017-04-26 5 views
0

Je dois créer un rôle de compte croisé pour accéder aux ressources du compartiment S3 à partir d'un autre compte aws que je possède.Accès au compte croisé S3 avec le rôle

Veuillez m'aider à implémenter ceci en utilisant le rôle IAM cross account sans utiliser Access ou les clés secrètes.

Répondre

1

Disons que vous avez:

  • Rôle A dans le compte A
  • instance A Compte A qui est associé à rôle A
  • Bucket B Compte B

Vous souhaitez pour permettre à une application de l'instance A d'accéder au contenu du compartiment B.

Le la documentation a un tableau indiquant les différentes valeurs de aws:userid dont:

Pour Le rôle attribué à une instance Amazon EC2, il est réglé sur role-id:ec2-instance-id

Par conséquent, vous pouvez utiliser l'ID Rôle du rôle associé à l'instance Amazon EC2 pour autoriser l'accès OU l'ID d'instance .

Par exemple, cette politique de seau est basé sur un rôle ID:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "SID123", 
      "Effect": "Allow", 
      "Action": [ 
       "s3:*" 
      ], 
      "Resource": [ 
       "arn:aws:s3:::MYBUCKET", 
       "arn:aws:s3:::MYBUCKET/*" 
      ], 
      "Principal": "*", 
      "Condition": { 
       "StringLike": { 
        "aws:userid": [ 
         "AROAIIPEUJOUGITIU5BB6*" 
        ] 
       } 
      } 
     } 
    ] 
} 

Pour obtenir l'ID de rôle, utilisez:

aws iam get-role --role-name ROLENAME 

Cette politique du godet repose sur une instance ID:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "SID123", 
      "Effect": "Allow", 
      "Action": [ 
       "s3:*" 
      ], 
      "Resource": [ 
       "arn:aws:s3:::MYBUCKET", 
       "arn:aws:s3:::MYBUCKET/*" 
      ], 
      "Principal": "*", 
      "Condition": { 
       "StringLike": { 
        "aws:userid": [ 
         "AROAIIPEUJOUGITIU5BB6*" 
        ] 
       } 
      } 
     } 
    ] 
} 

L'ID d'instance restera avec l'instance, mais une nouvelle instance sera attribuée si une nouvelle instance est lancée, même à partir du même Amazon Machine Image (AMI).

Bien sûr, vous voudrez probablement limiter ces autorisations à s3:GetObject plutôt qu'à s3:*.

(Cette réponse est basée sur Granting access to S3 resources based on role name.)

+0

Merci John. Ça a marché. – JVA