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.)
Merci John. Ça a marché. – JVA