J'ai un utilisateur de compte principal que je souhaite autoriser à accéder à un compartiment S3 de sous-compte. J'ai installé la pile suivante dans mon sous-compteConfiguration de l'accès inter-compte de l'utilisateur/rôle IAM
AWSTemplateFormatVersion : '2010-09-09'
Description: 'Skynet stack to allow admin account deploying user to access S3'
Parameters:
AccountId:
Type: String
Description: Account ID of admin account (containing user to allow)
Username:
Type: String
Description: Username to be allowed access
BucketPrefix:
Type: String
Description: Bucket to be allowed (prefix appended with -{AccountId}-{Region})
Resources:
CrossAccountRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Statement:
- Effect: Allow
Action: sts:AssumeRole
Principal:
AWS:
- !Sub arn:aws:iam::${AccountId}:user/${Username}
Path:/
Policies:
- PolicyName: skynet-s3-delegate
PolicyDocument:
Statement:
- Effect: Allow
Action:
- s3:ListBucket
- s3:GetObject
Resource: "*"
Mais je trouve que je reçois encore une erreur lorsque je tente d'assumer le rôle:
aws s3 cp skynet-lambda.zip s3://skynet-lambda-TARGET_ACCOUNT_ID-ap-southeast-1 --profile skynetci-cross-account
An error occurred (AccessDenied) when calling the AssumeRole operation: User: arn:aws:iam::MAIN_ACCOUNT_ID:user/circleci-skynet is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::TARGET_ACCOUNT_ID:role/StackSet-df0e85b0-d6fd-47bf-a0bb-CrossAccountRole-1EW45TXEFAY0D
Pourquoi est-ce si compte tenu que j'ai déjà la politique suivante pour l'utilisateur
{
"Effect": "Allow",
"Action": [
"sts:AssumeRole"
],
"Resource": "arn:aws:iam::TARGET_ACCOUNT_ID:role/StackSet-df0e85b0-d6fd-47bf-a0bb-CrossAccountRole-1EW45TXEFAY0D"
}
Donc, la différence avec l'original est la partie 'InstanceProfile'? Je l'ai cherché et il est censé être utilisé avec des instances EC2? Est-il correct d'utiliser sans EC2? Qu'est-ce qu'un profil d'instance en réalité? Cela ressemble à juste un rôle? Comment compare-t-il la méthode du godet S3? –
Oui, c'est correct. J'ai testé depuis mon bureau.La méthode du seau S3 est juste un autre moyen d'atteindre le même objectif. Remarque: J'ai pris votre modèle de cloud, puis l'ai corrigé car c'est ce que votre question demandait. –
Nous vous remercions de cette méthode alternative. On dirait que la plupart des ppl que j'ai demandé utilisaient la route de la politique du compartiment S3. Je pense que je l'utiliserais à la place. C'est un peu plus intuitif en quelque sorte. Comme dans ce cas, je ne comprends pas vraiment ce que le profil d'instance fait –