워크로드 자격 증명별로 자격 증명 공급자에 대한 액세스 범위 축소
IAM 정책을 사용하여 특정 자격 증명 공급자에 액세스할 수 있는 워크로드 자격 증명을 제어할 수 있습니다. 이렇게 하면 세분화된 액세스 제어가 가능하므로 승인된 에이전트만 특정 서비스에 대한 자격 증명을 검색할 수 있습니다.
참고
에이전트에 할당하는 IAM 역할은 에이전트가 호출할 수 있는 자격 증명 공급자를 제어합니다. 서비스는 동일한 계정의 워크로드 ID와 자격 증명 공급자 간에 추가 바인딩을 적용하지 않습니다. 최소 권한 관행을 따르려면를 사용하는 대신 IAM 정책 Resource 블록의 범위를 특정 워크로드 자격 증명 및 자격 증명 공급자 ARNs 지정합니다*.
자격 증명 공급자를 성공적으로 호출했다고 해서 자격 증명이 자동으로 반환되는 것은 아닙니다. 워크로드가 검색하는 자격 증명은 워크로드 액세스 토큰의 사용자 자격 증명으로 범위가 지정됩니다. OAuth2(3LO) 공급자의 경우 최종 사용자는 해당 워크로드 자격 증명 및 사용자 조합에 대해 검색할 자격 증명이 존재하기 전에 권한 부여를 완료해야 합니다.
액세스 제어 메커니즘
-
워크로드 자격 증명 기반 제한 - 자격 증명 공급자 액세스를 특정 워크로드 자격 증명으로 제한합니다.
-
리소스 수준 권한 - ARN 기반 정책을 사용하여 개별 자격 증명 공급자에 대한 액세스 제어
-
디렉터리 수준 제어 - 워크로드 ID 디렉터리 수준에서 액세스 관리
-
자격 증명 공급자 범위 지정 - 정책
Resource블록에 자격 증명 공급자 ARNs
IAM 정책 예시
다음 예제에서는 워크로드 자격 증명 및 자격 증명 공급자를 기반으로 자격 증명 공급자 액세스를 제한하는 IAM 정책을 생성하는 방법을 보여줍니다.
특정 API 키 자격 증명 공급자에 대한 액세스 제한
이 정책은 워크로드 자격 증명이 특정 자격 증명 공급자에서만 API 키를 검색하도록 허용합니다. Resource 블록의 자격 증명 공급자 ARN은 해당 공급자에 대한 액세스를 제한합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetResourceApiKey", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceApiKey" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/<workload-identity-name>", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/api-key/<provider-name>" ] } ] }
특정 OAuth2 자격 증명 공급자에 대한 액세스 제한
이 정책은 워크로드 자격 증명이 특정 OAuth2 자격 증명 공급자에서만 OAuth2 토큰을 검색하도록 허용합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetResourceOauth2Token", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceOauth2Token" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/<workload-identity-name>", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/oauth2-credential-provider/<provider-name>" ] } ] }
자격 증명 공급자에 대한 여러 워크로드 자격 증명 액세스 허용
이 정책은 여러 워크로드 자격 증명이 동일한 자격 증명 공급자로부터 API 키를 검색할 수 있도록 허용합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetResourceApiKeyMultipleIdentities", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceApiKey" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/agent-1", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/agent-2", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/agent-3", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/api-key/<provider-name>" ] } ] }
특정 자격 증명 공급자에 대한 액세스 거부
Deny 문을 사용하여 특정 자격 증명 공급자에 대한 워크로드 자격 증명 액세스를 명시적으로 거부할 수 있습니다. 거부 문은 허용 문보다 우선하므로 가드레일을 생성하는 데 유용합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAccessToSensitiveProvider", "Effect": "Deny", "Action": [ "bedrock-agentcore:GetResourceApiKey", "bedrock-agentcore:GetResourceOauth2Token" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/api-key/<sensitive-provider-name>", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/oauth2-credential-provider/<sensitive-provider-name>" ] } ] }
다른 자격 증명 공급자에 대해 별도의 워크로드 자격 증명 사용
다른 에이전트가 다른 자격 증명 공급자에 액세스해야 하는 경우 별도의 IAM 역할로 별도의 워크로드 ID를 생성합니다. 각 IAM 역할은 에이전트에 필요한 자격 증명 공급자로만 범위가 지정됩니다.
예를 들어 에이전트 A가 공급자 X에만 액세스해야 하고 에이전트 B가 공급자 Y에만 액세스해야 하는 경우:
-
워크로드 자격 증명
agent-a및 워크로드 자격 증명 생성agent-b -
공급자 X에 대한 액세스만 허용하는 정책을
AgentARole사용하여 IAM 역할 생성 -
공급자 Y에 대한 액세스만 허용하는 정책을
AgentBRole사용하여 IAM 역할 생성 -
각 워크로드 자격 증명을 해당 IAM 역할과 연결
에이전트 A에 대한 IAM 정책(공급자 X에만 액세스)
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentAAccessProviderX", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceApiKey" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/agent-a", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/api-key/provider-x" ] } ] }
에이전트 B에 대한 IAM 정책(공급자 Y에만 액세스)
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentBAccessProviderY", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceApiKey" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/agent-b", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/api-key/provider-y" ] } ] }
구현 단계
자격 증명 공급자에 대한 워크로드 자격 증명 기반 액세스 제어를 구현하려면:
-
워크로드 ID 식별 -
aws bedrock-agentcore-control list-workload-identities를 사용하여 계정의 모든 워크로드 ID를 나열합니다. 워크로드 자격 증명 생성 및 관리에 대한 자세한 내용은 AgentCore 자격 증명을 사용하여 워크로드 자격 증명 관리를 참조하세요. -
자격 증명 공급자 ARNs 확인 - 액세스를 제어하려는 특정 자격 증명 공급자를 식별합니다. 자격 증명 공급자 ARNs 다음 형식을 따릅니다.
-
arn:aws:bedrock-agentcore:<region>:<account_id>:token-vault/default/api-key/<provider-name> -
arn:aws:bedrock-agentcore:<region>:<account_id>:token-vault/default/oauth2-credential-provider/<provider-name>
-
-
IAM 정책 생성 - 어떤 워크로드 ID가 어떤 자격 증명 공급자에 액세스할 수 있는지 지정하는 IAM 정책 작성
-
역할에 정책 연결 - 에이전트 또는 애플리케이션에서 사용하는 IAM 역할에 정책 연결
-
액세스 제어 테스트 - 승인된 워크로드 자격 증명만 지정된 자격 증명 공급자에 액세스할 수 있는지 확인합니다.
모범 사례
-
워크로드 자격 증명에 설명이 포함된 이름을 사용하여 정책 관리를 더 쉽게 할 수 있습니다.
-
계정의 모든 공급자에 액세스 권한을 부여하는 대신
Resource블록에 자격 증명 공급자 ARNs을 포함하여 특정 공급자에 대한 액세스 범위 지정 -
다른 에이전트가 다른 자격 증명 공급자에 액세스해야 하는 경우 별도의 워크로드 자격 증명 및 IAM 역할 사용
-
명시적
Deny문을 사용하여 다른 정책에 관계없이 민감한 자격 증명 공급자에 대한 액세스를 방지하는 가드레일을 생성합니다. -
액세스 정책을 정기적으로 감사하고 검토하여 보안 요구 사항에 부합하는지 확인합니다.
-
시간, IP 주소 또는 기타 요인에 따른 추가 액세스 제어에 IAM 정책 조건 사용 고려
-
프로덕션 워크로드에 적용하기 전에 개발 환경에서 정책을 테스트합니다.