기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
다음은 Amazon Bedrock Studio에 대한 예제 정책입니다.
워크스페이스 관리
Amazon Bedrock Studio 워크스페이스를 생성 및 관리하고 워크스페이스 구성원을 관리하려면 다음 IAM 권한이 필요합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"datazone:CreateDomain",
"datazone:ListDomains",
"datazone:GetDomain",
"datazone:UpdateDomain",
"datazone:ListProjects",
"datazone:ListTagsForResource",
"datazone:UntagResource",
"datazone:TagResource",
"datazone:SearchUserProfiles",
"datazone:SearchGroupProfiles",
"datazone:UpdateGroupProfile",
"datazone:UpdateUserProfile",
"datazone:CreateUserProfile",
"datazone:CreateGroupProfile",
"datazone:PutEnvironmentBlueprintConfiguration",
"datazone:ListEnvironmentBlueprints",
"datazone:ListEnvironmentBlueprintConfigurations",
"datazone:DeleteDomain"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": "*",
"Condition": {
"StringEquals": {
"iam:passedToService": "datazone.amazonaws.com"
}
}
},
{
"Effect": "Allow",
"Action": [
"kms:DescribeKey",
"kms:Decrypt",
"kms:CreateGrant",
"kms:Encrypt",
"kms:GenerateDataKey",
"kms:ReEncrypt*",
"kms:RetireGrant"
],
"Resource": "kms key for domain
"
},
{
"Effect": "Allow",
"Action": [
"kms:ListKeys",
"kms:ListAliases"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"iam:ListRoles",
"iam:GetPolicy",
"iam:ListAttachedRolePolicies",
"iam:GetPolicyVersion"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"sso:DescribeRegisteredRegions",
"sso:ListProfiles",
"sso:AssociateProfile",
"sso:DisassociateProfile",
"sso:GetProfile",
"sso:ListInstances",
"sso:CreateApplication",
"sso:DeleteApplication",
"sso:PutApplicationAssignmentConfiguration",
"sso:PutApplicationGrant",
"sso:PutApplicationAuthenticationMethod"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"bedrock:ListFoundationModels",
"bedrock:ListProvisionedModelThroughputs",
"bedrock:ListModelCustomizationJobs",
"bedrock:ListCustomModels",
"bedrock:ListTagsForResource",
"bedrock:ListGuardrails",
"bedrock:ListAgents",
"bedrock:ListKnowledgeBases",
"bedrock:GetFoundationModelAvailability"
],
"Resource": "*"
}
]
}
권한 경계
이 정책은 권한 경계입니다. 권한 경계는 ID 기반 정책에서 IAM 위탁자에 부여할 수 있는 최대 권한을 설정합니다. Amazon Bedrock Studio 권한 경계 정책을 단독으로 사용하고 연결해서는 안 됩니다. Amazon Bedrock Studio 권한 경계 정책은 Amazon Bedrock Studio 관리형 역할에만 연결해야 합니다. IAM 권한 경계에 대한 자세한 정보는 IAM 사용 설명서의 IAM 엔터티의 권한 범위를 참조하세요.
Amazon Bedrock Studio 프로젝트, 앱 및 구성 요소를 만들면 Amazon Bedrock Studio는 이러한 리소스를 만들 때 생성된 IAM 역할에 이 권한 경계를 적용합니다.
Amazon Bedrock Studio는 AmazonDataZoneBedrockPermissionsBoundary
관리형 정책을 사용하여 연결된 프로비저닝된 IAM 위탁자의 권한을 제한합니다. 위탁자는 Amazon DataZone이 Amazon Bedrock Studio 사용자를 대신하여 수임할 수 있는 사용자 역할의 형태를 취한 다음, Amazon S3 객체를 읽고 쓰거나 Amazon Bedrock 에이전트를 간접 호출하는 등의 작업을 수행할 수 있습니다.
AmazonDataZoneBedrockPermissionsBoundary
정책은 Amazon S3, Amazon Bedrock, Amazon OpenSearch Serverless 및 AWS Lambda와 같은 서비스에 Amazon Bedrock Studio에 대한 읽기 및 쓰기 액세스 권한을 부여합니다. 또한 이 정책은 AWS Secrets Manager 보안 암호, Amazon CloudWatch 로그 그룹 및 AWS KMS
키와 같이 이러한 서비스를 사용하는 데 필요한 일부 인프라 리소스에 읽기 및 쓰기 권한을 부여합니다.
이 정책은 다음과 같은 권한 세트로 구성됩니다.
s3
- Amazon Bedrock Studio에서 관리하는 Amazon S3 버킷의 객체에 대한 읽기 및 쓰기 액세스를 허용합니다.bedrock
- Amazon Bedrock Studio에서 관리하는 Amazon Bedrock 에이전트, 지식 기반 및 가드레일을 사용할 수 있는 기능을 부여합니다.aoss
- Amazon Bedrock Studio에서 관리하는 Amazon OpenSearch Serverless 컬렉션에 대한 API 액세스를 허용합니다.lambda
- Amazon Bedrock Studio에서 관리하는 AWS Lambda 함수를 간접 호출할 수 있는 기능을 부여합니다.secretsmanager
– Amazon Bedrock Studio에서 관리하는 AWS Secrets Manager 보안 암호에 대한 읽기 및 쓰기 액세스를 허용합니다.logs
- Amazon Bedrock Studio에서 관리하는 Amazon CloudWatch Logs에 대한 쓰기 액세스를 제공합니다.kms
- Amazon Bedrock Studio 데이터를 암호화하는 데 AWS KMS 키를 사용할 수 있는 액세스 권한을 부여합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AccessS3Buckets",
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:ListBucketVersions",
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject",
"s3:GetObjectVersion",
"s3:DeleteObjectVersion"
],
"Resource": "arn:aws:s3:::br-studio-${aws:PrincipalAccount}-*",
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "AccessOpenSearchCollections",
"Effect": "Allow",
"Action": "aoss:APIAccessAll",
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "InvokeBedrockModels",
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource": "arn:aws:bedrock:*::foundation-model/*"
},
{
"Sid": "AccessBedrockResources",
"Effect": "Allow",
"Action": [
"bedrock:InvokeAgent",
"bedrock:Retrieve",
"bedrock:StartIngestionJob",
"bedrock:GetIngestionJob",
"bedrock:ListIngestionJobs",
"bedrock:ApplyGuardrail",
"bedrock:ListPrompts",
"bedrock:GetPrompt",
"bedrock:CreatePrompt",
"bedrock:DeletePrompt",
"bedrock:CreatePromptVersion",
"bedrock:InvokeFlow",
"bedrock:ListTagsForResource",
"bedrock:TagResource",
"bedrock:UntagResource"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"aws:ResourceTag/AmazonBedrockManaged": "true"
},
"Null": {
"aws:ResourceTag/AmazonDataZoneProject": "false"
}
}
},
{
"Sid": "RetrieveAndGenerate",
"Effect": "Allow",
"Action": "bedrock:RetrieveAndGenerate",
"Resource": "*"
},
{
"Sid": "WriteLogs",
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "arn:aws:logs:*:*:log-group:/aws/lambda/br-studio-*",
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"aws:ResourceTag/AmazonBedrockManaged": "true"
},
"Null": {
"aws:ResourceTag/AmazonDataZoneProject": "false"
}
}
},
{
"Sid": "InvokeLambdaFunctions",
"Effect": "Allow",
"Action": "lambda:InvokeFunction",
"Resource": "arn:aws:lambda:*:*:function:br-studio-*",
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"aws:ResourceTag/AmazonBedrockManaged": "true"
},
"Null": {
"aws:ResourceTag/AmazonDataZoneProject": "false"
}
}
},
{
"Sid": "AccessSecretsManagerSecrets",
"Effect": "Allow",
"Action": [
"secretsmanager:DescribeSecret",
"secretsmanager:GetSecretValue",
"secretsmanager:PutSecretValue"
],
"Resource": "arn:aws:secretsmanager:*:*:secret:br-studio/*",
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"aws:ResourceTag/AmazonBedrockManaged": "true"
},
"Null": {
"aws:ResourceTag/AmazonDataZoneProject": "false"
}
}
},
{
"Sid": "UseKmsKeyWithBedrock",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:GenerateDataKey"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"aws:ResourceTag/EnableBedrock": "true"
},
"Null": {
"kms:EncryptionContext:aws:bedrock:arn": "false"
}
}
},
{
"Sid": "UseKmsKeyWithAwsServices",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:GenerateDataKey"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"aws:ResourceTag/EnableBedrock": "true"
},
"StringLike": {
"kms:ViaService": [
"s3.*.amazonaws.com",
"secretsmanager.*.amazonaws.com"
]
}
}
},
{
"Sid": "GetDataZoneEnvCfnStacks",
"Effect": "Allow",
"Action": [
"cloudformation:GetTemplate",
"cloudformation:DescribeStacks"
],
"Resource": "arn:aws:cloudformation:*:*:stack/DataZone-Env-*",
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
},
"Null": {
"aws:ResourceTag/AmazonDataZoneProject": "false"
}
}
}
]
}