Amazon S3 버킷에 액세스 구성 - Amazon Bedrock

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon S3 버킷에 액세스 구성

여러 Amazon Bedrock 기능을 사용하려면 Amazon S3 버킷에 저장된 데이터에 액세스해야 합니다. 이 데이터에 액세스하려면 다음 권한을 구성해야 합니다.

사용 사례: 권한
S3 버킷에서 데이터를 검색할 수 있는 권한 s3:GetObject

s3:ListBucket

S3 버킷에 데이터를 쓸 수 있는 권한 s3:PutObject
S3 버킷을 암호화한 KMS 키를 복호화할 수 있는 권한 kms:Decrypt

kms:DescribeKey

위 권한을 연결해야 하는 ID 또는 리소스는 다음 요인에 따라 달라집니다.

  • Amazon Bedrock의 여러 기능은 서비스 역할을 사용합니다. 기능에서 서비스 역할을 사용하는 경우 사용자의 IAM 자격 증명이 아닌 서비스 역할이 S3 데이터에 액세스할 수 있도록 권한을 구성해야 합니다. 일부 Amazon Bedrock 기능은 AWS Management 콘솔을 사용하는 경우 자동으로 서비스 역할을 생성하고 필요한 ID 기반 권한을 서비스 역할에 연결할 수 있습니다.

  • Amazon Bedrock의 일부 기능을 사용하면 ID로 다른 계정의 S3 버킷에 액세스할 수 있습니다. 다른 계정에서 S3 데이터에 액세스해야 하는 경우 버킷 소유자는 S3 버킷에 연결된 S3 버킷 정책에 위의 리소스 기반 권한을 포함해야 합니다.

다음은 S3 데이터에 액세스하는 데 필요한 권한을 연결해야 하는 위치를 결정하는 방법을 설명합니다.

  • IAM 자격 증명 권한

    • 콘솔에서 서비스 역할을 자동으로 생성할 수 있는 경우 서비스 역할에 대한 권한이 구성되므로 직접 구성할 필요가 없습니다.

    • 사용자 지정 서비스 역할을 사용하려는 경우 또는 액세스가 필요한 ID가 서비스 역할이 아닌 경우 Amazon S3 버킷에 액세스할 수 있도록 IAM 자격 증명에 권한 연결 섹션으로 이동하여 적절한 권한이 있는 ID 기반 정책을 생성하는 방법을 알아봅니다.

  • 리소스 기반 권한

    • ID에 동일한 계정의 S3 데이터에 대한 액세스가 필요한 경우 데이터가 포함된 버킷에 S3 버킷 정책을 연결할 필요가 없습니다.

    • ID에 다른 계정의 S3 데이터에 대한 액세스가 필요한 경우 다른 계정이 액세스할 수 있도록 Amazon S3 버킷에 버킷 정책 연결 섹션으로 이동하여 적절한 권한이 있는 S3 버킷 정책을 생성하는 방법을 알아봅니다.

      중요

      에서 서비스 역할을 자동으로 생성하면 역할에 적절한 자격 증명 기반 권한이 AWS Management 콘솔연결되지만 액세스 권한이 필요한 자격 증명이 다른에 있는 경우에도 S3 버킷 정책을 구성해야 합니다AWS 계정.

자세한 내용은 다음 링크를 참조하세요.

사용 사례와 관련된 주제를 진행합니다.

Amazon S3 버킷에 액세스할 수 있도록 IAM 자격 증명에 권한 연결

이 주제에서는 IAM 자격 증명에 연결할 정책에 대한 템플릿을 제공합니다. 이 정책에는 IAM 자격 증명에 S3 버킷에 대한 액세스 권한을 부여하는 권한을 정의하는 다음 스테이트먼트가 포함되어 있습니다.

  1. S3 버킷에서 데이터를 검색할 수 있는 권한. 이 스테이트먼트에는 s3:prefix 조건 키를 사용하여 버킷의 특정 폴더에 대한 액세스를 제한하는 조건도 포함되어 있습니다. 이 조건에 대한 자세한 내용은 예제 2: 특정 접두사가 있는 버킷의 객체 목록 가져오기사용자 정책 섹션을 참조하세요.

  2. (S3 위치에 데이터를 작성해야 하는 경우) S3 버킷에 데이터를 쓸 수 있는 권한. 이 문에는 조건 키를 사용하여 특정에서 전송된 요청에 대한 액세스를 제한하는 aws:ResourceAccount 조건도 포함되어 있습니다AWS 계정.

  3. (S3 버킷이 KMS 키로 암호화된 경우) S3 버킷을 암호화한 KMS 키를 설명하고 해독할 수 있는 권한입니다.

    참고

    버전 관리가 활성화된 S3 버킷의 경우, 이 기능을 사용하여 업로드 하는 각 객체의 버전에는 자체 암호화 키가 있습니다. 어떤 객체 버전에 어떤 암호화 키가 사용되었는지는 직접 추적해야 합니다.

다음 정책의 스테이트먼트, 리소스 및 조건을 추가, 수정 및 제거하고 필요에 따라 ${values}를 바꿉니다.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ReadS3Bucket", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::${S3Bucket}", "arn:aws:s3:::${S3Bucket}/*" ] }, { "Sid": "WriteToS3Bucket", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::${S3Bucket}", "arn:aws:s3:::${S3Bucket}/*" ] }, { "Sid": "DecryptKMSKey", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-east-1:123456789012:key/${KMSKeyId}" } ] }

정책을 사용 사례에 맞게 수정한 후 S3 버킷에 액세스해야 하는 서비스 역할(또는 IAM 자격 증명)에 연결합니다. IAM 자격 증명에 권한을 부여하는 방법을 알아보려면 IAM 자격 증명 권한 추가 및 제거를 참조하세요.

다른 계정이 액세스할 수 있도록 Amazon S3 버킷에 버킷 정책 연결

이 주제에서는 IAM 자격 증명이 버킷의 데이터에 액세스할 수 있도록 S3 버킷에 연결할 리소스 기반 정책에 대한 템플릿을 제공합니다. 이 정책에는 ID가 버킷에 액세스할 수 있는 권한을 정의하는 다음 스테이트먼트가 포함되어 있습니다.

  1. S3 버킷에서 데이터를 검색할 수 있는 권한.

  2. (S3 위치에 데이터를 작성해야 하는 경우) S3 버킷에 데이터를 쓸 수 있는 권한.

  3. (S3 버킷이 KMS 키로 암호화된 경우) S3 버킷을 암호화한 KMS 키를 설명하고 해독할 수 있는 권한입니다.

    참고

    버전 관리가 활성화된 S3 버킷의 경우, 이 기능을 사용하여 업로드 하는 각 객체의 버전에는 자체 암호화 키가 있습니다. 어떤 객체 버전에 어떤 암호화 키가 사용되었는지는 직접 추적해야 합니다.

권한은 Amazon S3 버킷에 액세스할 수 있도록 IAM 자격 증명에 권한 연결에 설명된 ID 기반 권한과 유사합니다. 그러나 각 스테이트먼트에서는 Principal 필드의 리소스에 권한을 부여할 ID를 지정해야 합니다. Principal 필드에 ID(Amazon Bedrock의 대부분의 기능 포함, 서비스 역할)를 지정합니다. 다음 정책의 스테이트먼트, 리소스 및 조건을 추가, 수정 및 제거하고 필요에 따라 ${values}를 바꿉니다.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ReadS3Bucket", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ServiceRole" }, "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::${S3Bucket}", "arn:aws:s3:::${S3Bucket}/*" ] }, { "Sid": "WriteToS3Bucket", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ServiceRole" }, "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::${S3Bucket}", "arn:aws:s3:::${S3Bucket}/*" ] }, { "Sid": "DecryptKMSKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ServiceRole" }, "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-east-1:123456789012:key/${KMSKeyId}" } ] }

정책을 사용 사례로 수정한 후 S3 버킷에 연결합니다. S3 버킷에 정책을 연결하는 방법을 알아보려면 Amazon S3 콘솔을 사용하여 버킷 정책 추가를 참조하세요.

(고급 보안 옵션) 보다 세분화된 액세스를 위해 스테이트먼트에 조건 포함

리소스에 액세스할 수 있는 ID를 더 잘 제어하려면 정책 설명에 조건을 포함할 수 있습니다. 이 주제의 정책은 다음 조건 키를 사용하는 예제를 제공합니다.

  • s3:prefix - S3 버킷의 특정 폴더에 대한 액세스를 제한하는 S3 조건 키입니다. 이 조건 키에 대한 자세한 내용은 예제 2: 특정 접두사가 있는 버킷의 객체 목록 가져오기사용자 정책 섹션을 참조하세요.

  • aws:ResourceAccount - 특정의 요청에 대한 액세스를 제한하는 전역 조건 키입니다AWS 계정.

다음 정책은 amzn-s3-demo-bucket S3 버킷의 my-folder 폴더에 대한 읽기 액세스를 제한하고 amzn-s3-demo-destination-bucket S3 버킷에 대한 쓰기 액세스를 IDAWS 계정가 111122223333인의 요청으로 제한합니다. S3

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ReadS3Bucket", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ], "Condition" : { "StringEquals" : { "s3:prefix": "my-folder" } } }, { "Sid": "WriteToS3Bucket", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket", "arn:aws:s3:::amzn-s3-demo-destination-bucket/*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" } } } ] }

조건 및 조건 키에 대한 자세한 내용은 다음 링크를 참조하세요.