Amazon S3: 페더레이션 사용자가 프로그램 방식으로 콘솔에서 자신의 S3 홈 디렉터리에 액세스하도록 허용 - AWS Identity and Access Management

Amazon S3: 페더레이션 사용자가 프로그램 방식으로 콘솔에서 자신의 S3 홈 디렉터리에 액세스하도록 허용

이 예제는 페더레이션 사용자가 S3에 있는 자신의 홈 디렉터리 버킷 객체에 액세스하도록 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 홈 디렉터리는 개별 페더레이션 사용자의 home 폴더를 포함하는 버킷입니다. 이 정책은 프로그래밍 방식 및 콘솔 액세스에 대한 권한을 정의합니다. 이 정책을 사용하려면 정책 예제의 기울임꼴 자리 표시자 텍스트를 본인의 정보로 대체하세요. 그런 다음 정책 생성 또는 정책 편집의 지침을 따릅니다.

이 정책의 ${aws:userid} 변수가 role-id:specified-name로 변환됩니다. 페더레이션 사용자 ID의 role-id 부분은 생성 중에 연합된 사용자의 역할에 할당된 고유한 식별자입니다. 자세한 내용은 고유 식별자 단원을 참조하십시오. specified-name는 페더레이션 사용자가 역할을 수임했을 때 AssumeRoleWithWebIdentity 요청으로 전달된 RoleSessionName 파라미터입니다.

AWS CLI 명령 aws iam get-role --role-name specified-name.을 사용하여 역할 ID를 볼 수 있습니다. 예를 들어, 기억하기 쉬운 이름 John을 지정하고 CLI가 역할 ID AROAXXT2NJT7D3SIQN7Z6를 반환한다고 가정해 봅시다. 이 경우 페더레이션 사용자 ID는 AROAXXT2NJT7D3SIQN7Z6:John입니다. 그러면 이 정책에서 페더레이션 사용자 John이 접두사 AROAXXT2NJT7D3SIQN7Z6:John로 시작하는 Amazon S3 버킷에 액세스할 수 있도록 허용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3ConsoleAccess", "Effect": "Allow", "Action": [ "s3:GetAccountPublicAccessBlock", "s3:GetBucketAcl", "s3:GetBucketLocation", "s3:GetBucketPolicyStatus", "s3:GetBucketPublicAccessBlock", "s3:ListAccessPoints", "s3:ListAllMyBuckets" ], "Resource": "*" }, { "Sid": "ListObjectsInBucket", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket", "Condition": { "StringLike": { "s3:prefix": [ "", "home/", "home/${aws:userid}/*" ] } } }, { "Effect": "Allow", "Action": "s3:*", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:userid}", "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:userid}/*" ] } ] }