소유한 계정에 액세스 권한을 부여하는 액세스 정책 생성 - AWS CloudTrail

소유한 계정에 액세스 권한을 부여하는 액세스 정책 생성

시나리오 1에서 계정 A의 관리 사용자는 CloudTrail이 계정 B와 C에 대해 로그 파일을 작성하는 Amazon S3 버킷에 대한 모든 권한을 가지고 있으며, 각 사업 부문의 로그 파일을 생성한 사업 부문과 다시 공유하려고 합니다. 그러나 한 부문에서 다른 부분의 로그 파일을 읽지 않으려고 합니다.

예를 들어 계정 B의 로그 파일을 계정 B와 공유하지만 계정 C와는 공유하지 않으려면 계정 A에 계정 B가 신뢰할 수 있는 계정임을 지정하는 새 IAM 역할을 생성해야 합니다. 이 역할 신뢰 정책은 계정 B가 계정 A에 의해 생성된 역할을 수임할 수 있도록 신뢰받고 있음을 지정하며, 다음 예와 같아야 합니다. 콘솔을 사용하여 역할을 생성하면 신뢰 정책이 자동으로 생성됩니다. SDK를 사용하여 역할을 생성하면 CreateRole API에 신뢰 정책을 파라미터로 제공해야 합니다. CLI를 사용하여 역할을 생성하면 create-role CLI 명령에 신뢰 정책을 지정해야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-B-id:root" }, "Action": "sts:AssumeRole" } ] }

또한 B가 해당 로그 파일을 작성한 위치에서만 계정 B를 읽을 수 있음을 지정하는 액세스 정책을 생성해야 합니다. 액세스 정책은 다음과 같습니다. 리소스 ARN에는 계정 B의 12자리 계정 ID와, 집계 프로세스 중에 계정 B에 대해 CloudTrail을 활성화할 때 지정한 접두사(있는 경우)가 포함된다는 점에 유의하세요. 접두사 지정에 대한 자세한 내용은 추가 계정에서 CloudTrail 활성화 섹션을 참조하십시오.

중요

액세스 정책의 접두사는 계정 B에 대해 CloudTrail을 활성화할 때 지정한 접두사와 정확하게 동일해야 합니다. 동일하지 않은 경우 계정 B에 대한 실제 접두사를 포함하도록 계정 A의 IAM 역할 액세스 정책을 편집해야 합니다. 역할 액세스 정책의 접두사가 계정 B에서 CloudTrail을 활성화할 때 지정한 접두사와 정확하게 동일하지 않으면 계정 B는 해당 로그 파일에 액세스할 수 없습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": "arn:aws:s3:::bucket-name/prefix/AWSLogs/account-B-id/*" }, { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": "arn:aws:s3:::bucket-name" } ] }

계정 C에 대해 생성한 역할은 계정 B에 대해 생성한 역할과 거의 동일합니다. 각 역할의 액세스 정책은 CloudTrail이 해당 계정의 로그 파일을 작성한 위치에서만 각 계정이 읽을 수 있도록 적절한 계정 ID와 접두사를 포함해야 합니다.

각 계정에 대한 역할을 생성하고 적절한 신뢰 및 액세스 정책을 지정한 후 해당 계정의 관리자가 각 계정의 IAM 사용자에게 액세스 권한을 부여하면 계정 B 또는 C의 IAM 사용자는 프로그래밍 방식으로 역할을 맡을 수 있습니다.

각 계정에 대한 역할을 생성하고 적절한 신뢰 및 액세스 정책을 지정하면 새로 신뢰된 계정(B 또는 C) 중 하나의 IAM 사용자는 Amazon S3 버킷의 로그 파일을 읽기 위해 프로그래밍 방식으로 역할을 맡아야 합니다.

자세한 내용은 섹션을 참조하세요역할 수임